返信ありがとうございます。 テーブル名は既に接続ごとに違う名前になっています。 今回の事案では直接DBに接続ではなく、DataSnapサーバーが受け口となり DataSnapサーバーからDBに接続するので、DataSnapサーバー内部で 待たせるようにしたので何とか回避できましたが DBに直接接続する場合は、うかつにRECREATE TABLEを使いないようですね。 DROP TABLE、CREATE TABLEの組み合わせならどうなのかなど 時間ができたら調べてみます。 GLOBAL TEMPORARY TABLE機能についても調べてみます。 情報ありがとうございました。 Quest On 2019/05/11 4:23, telme****@yahoo***** wrote: > RECREATE TABLEの直後にトランザクションをコミットさせればある程度は回避で > きると思いますが > まったく同時の場合は、どうしてもぶつかると思います。 > > 私の場合であれば、 > GLOBAL TEMPORARY TABLE機能を使用して接続ごとにテーブル名を変化させるか > 同時実行しないよう、片方を待たせるプログラムにする > といった感じでしょうか。 > > > ----- Original Message ----- > *From:* "quest****@da2*****" <quest****@da2*****> > *To:* fireb****@lists***** > *Date:* 2019/4/22, Mon 23:44 > *Subject:* [Firebird-jp-general] RECREATE TABLEでエラー > > Firebird Ver2.5.8.27089にDelphi 10.2.3 TokyoのIBX(FireDACでも)で > 2箇所から接続して同時に違うテーブルをRECREATEすると > デッドロックのエラーが発生する現象に困っています。 > > RECREATE TABLE TEST_1 ( > FIELD1 BIGINT NOT NULL PRIMARY KEY > ) > > このような単純なテーブルでエラーが発生します。 > 別の場所からはテーブル名が"TEST_2"になっているSQLを > ほぼ同時にサーバーに投げるのですが > 一方では > > deadlock > > update conflicts with concurrent update concurrent transaction > number is 732020 > というエラーが発生し > もう一方では > > unsuccessful metadata update cannot create index RDB$PRIMARY5213 > というエラーになります。(それぞれ数字の部分は実行の度に変わります) > 一度この状態になると、片方だけでもエラーが発生するようになります。 > 何故か"RECREATE VIEW"を実行するとこの状態が解消されるようです。 > (必ずではないですが、間をおいて実行すればほぼ解消されます) > > 2つ目のエラーからインデックスをシステムテーブル(RDB$INDEX_SEGMENTS)に > 登録するときに衝突していると推測してますが、もしそうなら、こちら側では > どうすることもできない様な気がします。 > > 何か心当たりがある方はいらっしゃいますか? > どんな事でもヒントをいただければ幸いです。 > よろしくお願いします。 > > Quest > > --- > このEメールはアバスト アンチウイルスによりウイルススキャンされています。 > https://www.avast.com/antivirus > > _______________________________________________ > Firebird-jp-general mailing list > Fireb****@lists***** > <mailto:Fireb****@lists*****> > https://lists.osdn.me/mailman/listinfo/firebird-jp-general > > > > > _______________________________________________ > Firebird-jp-general mailing list > Fireb****@lists***** > https://lists.osdn.me/mailman/listinfo/firebird-jp-general > --- このEメールはアバスト アンチウイルスによりウイルススキャンされています。 https://www.avast.com/antivirus