私のアプリケーションは、システム全体のカウンターとして機能するテーブルに書き込む必要があり、このカウンターは、システム全体とすべてのアプリケーションで一意である必要があります。
このカウンターは現在、Oracle データベースのテーブルとして実装されています。
私の問題は、他の複数のプロセスがこれを読み書きする可能性があるため、現在のトランザクションでロックされることなく、このカウンター テーブル (システムへの各ビジネス プロセスでカウンターの一意性を保証するためにいくつかのキーを使用する) に書き込む必要があることです。テーブルも。カウンターのギャップは問題ではありませんが、事前にカウンター値を作成することはできません。
シーケンス番号はフォーマットされた番号であるため、この場合、単純な SEQUENCE は役に立ちません。
今のところ、これを実現するためのデータベース以外の代替手段がいくつかありますが、しばらくの間、システムコードをできるだけ変更したくありません。
実際には、現在のトランザクションに参加しない新しい接続を開き、テーブルに書き込み、この新しい接続を閉じることができれば最も簡単ですが、私の疲れた心はそれを行う方法を見つけることができません.
答えは明らかだろうが、今は光が当たらないだけだ。