Oracle パブリッシャ用にトランザクション セット ジョブを構成する方法 (レプリケーション Transact-SQL プログラミング)
Xactset ジョブは、Oracle パブリッシャで実行されているレプリケーションがトランザクション セットを生成するために作成する Oracle データベース ジョブです。Oracle パブリッシャにログ リーダー エージェントが接続されていない場合に使用されます。このジョブは、レプリケーションのストアド プロシージャを使用し、ディストリビュータからプログラムによって有効化したり構成することができます。詳細については、「Oracle パブリッシャのパフォーマンス チューニング」を参照してください。
トランザクション セット ジョブを有効にするには
Oracle パブリッシャで、job_queue_processes 初期化パラメータに、Xactset ジョブを実行できるだけの十分な値を設定します。このパラメータの詳細については、Oracle パブリッシャ用データベースのマニュアルを参照してください。
ディストリビュータで、sp_publisherproperty (Transact-SQL) を実行します。@publisher に Oracle パブリッシャの名前を、@propertyname に xactsetbatching を、@propertyvalue に enabled を指定します。
ディストリビュータで、sp_publisherproperty (Transact-SQL) を実行します。@publisher に Oracle パブリッシャの名前を、@propertyname に xactsetjobinterval を、@propertyvalue にジョブの実行間隔 (分) を指定します。
ディストリビュータで、sp_publisherproperty (Transact-SQL) を実行します。@publisher に Oracle パブリッシャの名前を、@propertyname に xactsetjob を、@propertyvalue に enabled を指定します。
トランザクション セット ジョブを構成するには
(省略可) ディストリビュータで sp_publisherproperty (Transact-SQL) を実行します。@publisher に Oracle パブリッシャの名前を指定します。これにより、パブリッシャの Xactset ジョブのプロパティが返されます。
ディストリビュータで、sp_publisherproperty (Transact-SQL) を実行します。@publisher、@propertyname、および、@propertyvalue に、それぞれ Oracle パブリッシャの名前、設定する Xactset ジョブ プロパティの名前、新しい設定を指定します。
(省略可) 設定対象の各 Xactset ジョブ プロパティについて、手順 2. を繰り返します。xactsetjobinterval プロパティを変更した場合は、Oracle パブリッシャでジョブを再起動しないと新しい間隔が反映されません。
トランザクション セット ジョブのプロパティを表示するには
- ディストリビュータで sp_helpxactsetjob を実行します。@publisher に Oracle パブリッシャの名前を指定します。
トランザクション セット ジョブを無効にするには
- ディストリビュータで、sp_publisherproperty (Transact-SQL) を実行します。@publisher に Oracle パブリッシャの名前を、@propertyname に xactsetjob を、@propertyvalue に disabled を指定します。
使用例
次の例では、Xactset ジョブを有効にし、実行間隔を 3 分に設定しています。
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
DECLARE @publisher AS sysname;
SET @publisher = $(Publisher);
-- Enable the creation of transaction sets
-- at the Oracle Publisher.
EXEC sp_publisherproperty
@publisher = @publisher,
@propertyname = N'xactsetbatching',
@propertyvalue = N'enabled';
-- Set the job interval before enabling
-- the job, otherwise the job must be restarted.
EXEC sp_publisherproperty
@publisher = @publisher,
@propertyname = N'xactsetjobinterval',
@propertyvalue = N'3';
-- Enable the transaction set job.
EXEC sp_publisherproperty
@publisher = @publisher,
@propertyname = N'xactsetjob',
@propertyvalue = N'enabled';
GO