環境の複製

はじめに

概要

重要

サーバーとデータベース(ホスト環境)にアクセスできない場合、以下に説明する手順は実行できません。 Adobeに連絡。

Adobe Campaignを使用するには、1つ以上の環境をインストールして設定する必要があります。開発、テスト、実稼動前、実稼動環境など

各環境には1つのAdobe Campaignインスタンスが含まれ、各Adobe Campaignインスタンスは1つ以上のデータベースにリンクされています。 アプリケーションサーバーは、1つ以上のプロセスを実行できます。これらのほとんどすべては、インスタンスデータベースに直接アクセスできます。

この節では、Adobe Campaign環境の複製に適用するプロセスについて詳しく説明します。例えば、ソース環境をターゲット環境に復元する場合に、2つの同じ作業環境を作成する場合に使用します。

それには、次の手順に従います。

  1. ソース環境内のすべてのインスタンス上にデータベースのコピーを作成します。

  2. ターゲット環境のすべてのインスタンス上で、これらのコピーを復元する

  3. 起動する前に、ターゲット環境で​nms:freezeInstance.js​焼灼スクリプトを実行します。

    このプロセスは、サーバーとその設定には影響しません。

    メモ

    Adobe Campaignのコンテキストでは、 焼灼​は、外部との対話をすべてのプロセスを停止するアクションを組み合わせます。ログ、トラッキング、配信、キャンペーンワークフローなど
    この手順は、(1回は公称環境から、もう1回は複製環境から)メッセージを複数回配信しないようにするために必要です。

    重要

    1つの環境に複数のインスタンスを含めることができます。 各Adobe Campaignインスタンスには、ライセンス契約が適用されます。 使用許諾契約を確認して、使用できる環境の数を確認します。
    以下の手順を実行すると、インストールした環境やインスタンスの数に影響を与えることなく、環境を転送できます。

を起動する前に

重要

転送プロセスを開始する前に、ソース環境とターゲット環境のすべてのインスタンスに対して、データベースの完全バックアップを実行することを強くお勧めします。 この方法で問題が発生した場合は、バックアップを復元し、初期設定に戻すことができます。

このプロセスを機能させるには、ソース環境とターゲット環境で同じ数のインスタンス、同じ目的(マーケティングインスタンス、配信インスタンス)、類似した設定が必要です。 技術的な設定は、ソフトウェアの前提条件に従う必要があります。 両方の環境に同じコンポーネントをインストールする必要があります。

実装

転送手順

この節では、ケーススタディを使用して、ソース環境をターゲット環境に移行する際に必要な手順を説明します。ここでの目的は、実稼動環境(prod​インスタンス)を開発環境(dev​インスタンス)に復元し、「ライブ」プラットフォームにできるだけ近いコンテキストで動作させることです。

次の手順は慎重に実行する必要があります。ソース環境データベースをコピーする際に、一部のプロセスが進行中である可能性があります。 注意点(下の手順3)では、メッセージが2回送信されるのを防ぎ、データの一貫性を維持します。

重要
  • 次の手順は、PostgreSQL言語で有効です。 SQL言語が異なる場合(Oracleなど)は、SQLクエリを適応させる必要があります。
  • 以下のコマンドは、PostgreSQLの下の​prod​インスタンスと​dev​インスタンスのコンテキスト内に適用されます。

手順1 — ソース環境(実稼動)データのバックアップを作成する

データベースのコピー

まず、すべてのソース環境データベースをコピーします。 操作はデータベースエンジンに依存し、データベース管理者がおこないます。

PostgreSQLでは、コマンドは次のようになります。

pg_dump mydatabase > mydatabase.sql

手順2 — ターゲット環境設定(開発)を書き出す

ほとんどの設定要素は、環境ごとに異なります。外部アカウント(ミッドソーシング、ルーティングなど)、技術オプション(プラットフォーム名、データベースID、Eメールアドレス、デフォルトURLなど)。

ソースデータベースをターゲットデータベースに保存する前に、ターゲット環境(開発環境)の設定を書き出す必要があります。 これをおこなうには、次の2つのテーブルの内容をエクスポートします。xtkoption​と​nmsextaccount

この書き出しを使用すると、開発環境の設定を維持し、開発データ(ワークフロー、テンプレート、Webアプリケーション、受信者など)のみを更新できます。

これをおこなうには、次の2つの要素に対してパッケージのエクスポートを実行します。

  • xtk:option​テーブルを「options_dev.xml」ファイルにエクスポートします。この際、次の内部名を持つレコードは含まれません。'WdbcTimeZone'、'NmsServer_LastPostUpgrade'および'NmsBroadcast_RegexRules'。
  • 「extaccount_dev.xml」ファイルで、IDが0(@id <> 0)でないすべてのレコードの​nms:extAccount​テーブルを書き出します。

エクスポートするオプション/アカウントの数が、各ファイルにエクスポートする行数と等しいことを確認します。

メモ

パッケージエクスポートでエクスポートする行の数は1,000行です。 オプションまたは外部アカウントの数が1,000を超える場合は、複数のエクスポートを実行する必要があります。

詳しくは、こちらの節を参照してください。

メモ

nmsextaccountテーブルをエクスポートすると、外部アカウントに関連するパスワード(例えば、ミッドソーシング、Message Centerの実行、SMPP、IMSおよびその他の外部アカウントのパスワード)はエクスポートされません。 外部アカウントを環境に再びインポートした後で再入力する必要が生じる場合があるので、正しいパスワードに事前にアクセスできることを確認してください。

手順3 — ターゲット環境(開発)を停止します

すべてのターゲット環境サーバーでAdobe Campaignプロセスを停止する必要があります。 この操作は、オペレーティングシステムによって異なります。

すべてのプロセスを停止するか、データベースに書き込むプロセスのみを停止できます。

すべてのプロセスを停止するには、次のコマンドを使用します。

  • Windowsの場合:

    net stop nlserver6
    
  • Linuxの場合:

    /etc/init.d/nlserver6 stop
    

次のコマンドを使用して、すべてのプロセスが停止したことを確認します。

nlserver pdump
メモ

Windowsでは、webmdl​プロセスは、他の操作に影響を与えることなくアクティブなままです。

また、実行中のシステムプロセスがないことも確認できます。

それには、次の手順に従います。

  • Windowsの場合:タスクマネージャー​を開き、nlserver.exe​プロセスがないことを確認します。
  • Linuxの場合:ps auxを実行します。 | grep nlserver​コマンドを実行し、nlserver​プロセスがないことを確認します。

手順4 — ターゲット環境(開発環境)のデータベースを復元する

ターゲット環境でソース・データベースをリストアするには、次のコマンドを使用します。

psql mydatabase < mydatabase.sql

手順5 — ターゲット環境(開発)の焼灼

誤動作を防ぐために、配信の送信とワークフローの実行に関連するプロセスを、ターゲット環境がアクティブ化されたときに自動的に実行しないようにする必要があります。

これをおこなうには、次のコマンドを実行します。

nlserver javascript nms:freezeInstance.js -instance:<dev> -arg:run

手順6 -の警告を確認する

  1. IDが0に設定されているのが配信パートのみであることを確認します。

    SELECT * FROM neolane.nmsdeliverypart;
    
  2. 配信ステータスが正しく更新されていることを確認します。

    SELECT iState, count(*) FROM neolane.nmsdelivery GROUP BY iState;
    
  3. ワークフローのステータスが正しく更新されていることを確認します。

    SELECT iState, count(*) FROM neolane.xtkworkflow GROUP BY iState;
    SELECT iStatus, count(*) FROM neolane.xtkworkflow GROUP BY iStatus;
    

手順7 — ターゲット環境のWebプロセス(開発)を再起動します

ターゲット環境で、すべてのサーバーのAdobe Campaignプロセスを再起動します。

メモ

dev​環境でAdobe Campaignを再起動する前に、次の安全手順を追加で適用できます。web​モジュールのみを起動します。

これをおこなうには、インスタンスの設定ファイル(config-dev.xml)を編集し、各モジュール(mta、statなど)のautoStart="true"オプションの前に「_」文字を追加します。

次のコマンドを実行して、Webプロセスを開始します。

nlserver start web

次のコマンドを使用して、Webプロセスのみが開始したことを確認します。

nlserver pdump

クライアントコンソール機能へのアクセス権を確認します。

手順8 — ターゲット環境(開発)にオプションと外部アカウントを読み込む

重要

この手順では、Webプロセスのみを開始する必要があります。 そうでない場合は、続行する前に他の実行中のプロセスを停止します

特に、読み込む前に、複数行のファイルの値を確認します(例:オプションテーブルおよび外部アカウントテーブルの配信またはミッドソーシングアカウントの「NmsTracking_Pointer」)

ターゲット環境データベース(開発環境)から設定を読み込むには、次の手順を実行します。

  1. データベースの管理コンソールを開き、IDが0(@id <> 0)でない外部アカウント(table nms:extAccount)をパージします。

  2. Adobe Campaignコンソールで、パッケージの読み込み機能で以前に作成したoptions_dev.xmlパッケージを読み込みます。

    管理/プラットフォーム/オプション​ノードで、オプションが実際に更新されていることを確認します。

  3. Adobe Campaignコンソールで、パッケージのインポート機能を使用して作成済みのextaccount_dev.xmlをインポートします。

    管理/プラットフォーム/外部アカウント​で、外部データベースが実際にインポートされたことを確認します。

手順9 — すべてのプロセスを再起動し、ユーザーを変更する(開発)

Adobe Campaignプロセスを開始するには、次のコマンドを使用します。

  • Windowsの場合:

    net start nlserver6
    
  • Linuxの場合:

    /etc/init.d/nlserver6 start
    

次のコマンドを使用して、プロセスが開始されたことを確認します。

nlserver pdump

ユーザーを変更して、開発プラットフォームに既に存在するユーザーを見つけます。

このページ