私は1つのスレッドだけがアクセスを許可するコードをいくつか持っています。私はブロックまたはメソッドを使用してこれを達成する方法を知っていますが、これはクラスタ化された環境で動作しますか?クラスタ全体でJava同期ブロックを共有するか、グローバルロックを使用しますか?
ターゲット環境はWebSphere 6.0で、クラスタ内に2つのノードがあります。
は、各ノード上のアプリケーションの各インスタンスが独自のJVMを持つため、うまくいかないと感じています。
私がここでやろうとしているのは、システムの起動時にデータベースレコードを更新することです。コードのバージョンより古いデータベースレコードを検索し、特定のタスクを実行して更新します。 1つのノードでこれらのアップグレードを実行したいのは、各作業項目が1回だけアップグレードされ、アップグレードのパフォーマンスが大きな問題ではないことです。なぜなら、アプリケーションの起動時に発生するためです。最後に起動してからコードが変更されたとき。
データベースはDB2v9であり、JNDI(ORM層なし)を介して直接アクセスしています。
グローバルロックがここに行く方法かもしれないことが示唆されていますが、その方法はわかりません。
誰でもこのアリーナにポインタを持っていますか?
ありがとうございます!
あなたはあなたの質問にもっと具体的にしなければならないと思います。どのような行動、まさにあなたが調整しようとしていますか? –
@ソフトウェアモンキー - はい、それについては申し訳ありません。私は自分の意図を説明する段落を追加しました。まだ明らかでない場合は教えてください。 – pkaeding
あなたが本当に望むのは、グローバルロックです。私はwebsphereを知らないので、ここでは手伝ってはいけませんが、ロックを作成するための助けを求める人はおそらくもっと多くの鐘を鳴らします:) – bdonlan