Oracle パブリッシャー用のトランザクション セット ジョブの構成

適用対象: SQL Server

Xactset ジョブは、Oracle パブリッシャーで実行されているレプリケーションがトランザクション セットを生成するために作成する Oracle データベース ジョブです。Oracle パブリッシャーにログ リーダー エージェントが接続されていない場合に使用されます。 このジョブは、レプリケーションのストアド プロシージャを使用し、ディストリビューターからプログラムによって有効化したり構成することができます。 詳細については、「Performance Tuning for Oracle Publishers」 (Oracle パブリッシャーのパフォーマンス チューニング) を参照してください。

トランザクション セット ジョブを有効にするには

  1. Oracle パブリッシャーで、 job_queue_processes 初期化パラメーターに、Xactset ジョブを実行できるだけの十分な値を設定します。 このパラメーターの詳細については、Oracle パブリッシャー用データベースのマニュアルを参照してください。

  2. ディストリビューターで、sp_publisherproperty (Transact-SQL) を実行します。 @publisherに Oracle パブリッシャーの名前を、 @propertynamexactsetbatchingを、 @propertyvalueenabledを指定します。

  3. ディストリビューターで、sp_publisherproperty (Transact-SQL) を実行します。 @publisherに Oracle パブリッシャーの名前を、 @propertynamexactsetjobintervalを、 @propertyvalueにジョブの実行間隔 (分) を指定します。

  4. ディストリビューターで、sp_publisherproperty (Transact-SQL) を実行します。 @publisherに Oracle パブリッシャーの名前を、 @propertynamexactsetjobを、 @propertyvalueenabledを指定します。

トランザクション セット ジョブを構成するには

  1. (省略可能) ディストリビューターで sp_publisherproperty (Transact-SQL) を実行します。 @publisherに Oracle パブリッシャーの名前を指定します。 これにより、パブリッシャーの Xactset ジョブのプロパティが返されます。

  2. ディストリビューターで、sp_publisherproperty (Transact-SQL) を実行します。 @publisher@propertyname、および、 @propertyvalueに、それぞれ Oracle パブリッシャーの名前、設定する Xactset ジョブ プロパティの名前、新しい設定を指定します。

  3. (省略可) 設定対象の各 Xactset ジョブ プロパティについて、手順 2. を繰り返します。 xactsetjobinterval プロパティを変更した場合は、Oracle パブリッシャーでジョブを再起動しないと新しい間隔が反映されません。

トランザクション セット ジョブのプロパティを表示するには

  1. ディストリビューターで sp_helpxactsetjobを実行します。 @publisherに Oracle パブリッシャーの名前を指定します。

トランザクション セット ジョブを無効にするには

  1. ディストリビューターで、sp_publisherproperty (Transact-SQL) を実行します。 @publisherに Oracle パブリッシャーの名前を、 @propertynamexactsetjobを、 @propertyvaluedisabledを指定します。

次の例では、 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