MySQLの内部ロックを使用すれば確かに機能としては実現できますが、そのままアンロックをせずに終了するアプリがあれば容易にデッドロックになりますのでご注意ください。
ご質問について、まずはダイアログ表示のアクションイベントが実際に発生しているかご確認いただけますでしょうか。呼び出す起動メソッドの前で、メッセージダイアログ表示などを起動することで確認できます。
もしダイアログ表示のアクションイベントが発生していなければ、ダイアログコンポーネントの属性でShowEventEnabledがtrueになっているかをご確認ください。通常はこの属性がfalseになっていて、ダイアログ表示のときにアクションイベントが発生しないようになっております。