2012-04-03 21 views
0

次のシナリオを検討してください。クォーツスケジューラジョブの移行

サーバ1:石英2.xはJDK 1.6コード

異なる各サーバのジョブテーブルのセット(同じスキーマ内で実行されている:クォーツ1.1がJDK 1.4コードに

サーバー2を実行)。インスタンス名と インスタンスIDは、各サーバーに固有です。

ここでは、サーバー1からサーバー2にジョブを移行したいと思います。これを行うには、サーバー1またはサーバー2のいずれかで実行されるコードを記述することができます。コードでは、既存のサーバー2のジョブ・テーブル内のサーバー1のジョブ。それらを作成したら、サーバー1の既存のジョブを削除する必要があります。

これはできますか?

答えて

1

Quartz 1.8.x to Quartz 2.0 Migration Guideをチェックし、JDBCJobStoreを使用してセットアップするために特に作るの変更:

あなたがJDBCJobStoreを使用する場合は、新しい予想されるスキーマにそれを変換するためにデータベースにいくつかの変更を加える必要があります。

移行スクリプトが提供されており、かなり長いです。基本的に古いデータベースのテーブルスキーマをQuartz 2.0に変換する必要があります。

+0

トマシュ - 私は前にこの文書を読んだ。私はあなたが私の質問を間違っていると思う。私は新しい仕事を創ったり、新しいテーブルを作るつもりはありません。私はすでにテーブルの新しいセットを作成して、私は自分のコード変更を完了しました。 ここでは、あるジョブ・テーブルのセットから別のジョブ・テーブルのセット(つまり、あるサーバーから別のセット)への移行ジョブ(すでにある)を試しています。これはできますか? –

+0

@AndrewAnderson:サーバー1のジョブをサーバー2上で実行するように正しく理解していれば、サーバー1のデータベーススキーマを移行しただけで、すべてのレコードをサーバー1のデータベースからサーバー2にコピーすれば十分です。サーバ2のスケジューラが再起動後に新しいタスクを取得するように、スケジューラ名は同じでなければなりません。 –

+0

Tomsaz - 私は一度に仕事を移すことはできません。私はしばらくの間サーバー1を保つ必要があります。段階的な移行の並べ替え。また、スケジューラの名前も異なります。 ジョブをサーバー2に移行し、同じジョブをサーバー1から削除しようとしている場合(両方のアクションをサーバー1から実行する必要がある)、quartz.propertiesの2つのセットは必要ありません。サーバーにはquartz.propertiesファイルを使用して構成された固有のインスタンス名があります。 このエクササイズは可能ですか? –