BizTalk Serverを実行しているコンピューターのアプリケーション ログに表示されるエラー メッセージ

この記事では、Microsoft BizTalk Server 2006 または BizTalk Server 2004 を実行しているサーバーのアプリケーション ログに表示されるエラー メッセージの考えられる原因と解決策について説明します。

元の製品バージョン: BizTalk Server 2009 Developer、BizTalk Server 2009 Enterprise、BizTalk Server 2009 Standard
元の KB 番号: 841334

現象

2006 または 2004 BizTalk Serverを実行しているサーバーのアプリケーション ログに、次のようなエラー メッセージBizTalk Server表示されます。

読み取りエラー。 例外情報: TDDS がソース データベースから読み取れませんでした。
SQLServer: SQLSERVER、データベース: BizTalkMsgBoxDb。

アプリケーション イベント ログには、次のいずれかのエラー メッセージが表示される場合もあります。

  • エラー メッセージ 1

    別の TDDS が同じデータを処理しているか、TDDS ロックを保持している SQL サーバーに孤立したセッションがあります。 SQL Server: SQLSERVER Database: BizTalkMsgBoxDb

  • エラー メッセージ 2

    別の TDDS が同じデータを処理しているか、TDDS ロックを保持している SQL サーバーに孤立したセッションがあります。 ログイン 'ログイン' で要求されたデータベースを開くことができません。 ログインが失敗します。

  • エラー メッセージ 3

    別の TDDS が同じデータを処理しているか、TDDS ロックを保持している SQL サーバーに孤立したセッションがあります。ConnectionString プロパティが初期化されていません。 SQLServer: SQLSERVER、データベース: BizTalkMsgBoxDb

    注:

    SQLSERVER は、BizTalk MessageBox データベースを格納するSQL Serverを実行しているコンピューターの名前を表し、Login はユーザー名のプレースホルダーでありBizTalkMsgBoxDb、BizTalk Server MessageBox データベースの名前のプレースホルダーです。

原因

次の理由により、このエラー メッセージが表示される場合があります。

  • 追跡が有効になっているBizTalk Server ホスト インスタンスのログオンとして指定されたユーザー アカウントは、正常性とアクティビティの追跡、ビジネス アクティビティ監視、および MessageBox データベースを格納するSQL Serverを実行しているコンピューター上の BizTalk アプリケーション ユーザー グループのメンバーではありません。

  • 孤立した SQL セッションでは、BAM Event Bus サービスとも呼ばれる追跡データ デコード サービス (TDDS) の起動が妨げられます。

解決方法

この問題を解決するには、[現象] セクションに記載されているエラー テキストの直後にあるエラー説明のテキストをチェックします。 エラー テキストの直後にあるエラーの説明のテキストに応じて、次の手順に従います。

  • 表示されるエラー テキストが次のエラー メッセージに似ている場合:

    オブジェクト 'TDDS_Lock'、テーブル 'xxx'、所有者 'xxx' に対する EXECUTE アクセス許可が拒否されました。 SQLServer: xxx, データベース: xxx.

    追跡が有効になっているBizTalk Server ホスト インスタンスのログオンとして指定されているユーザー アカウントが、正常性とアクティビティの追跡、ビジネス アクティビティ監視、およびメッセージ ボックス データベースを格納するSQL Serverを実行しているコンピューター上の BizTalk アプリケーション ユーザー グループのメンバーであることを確認します。 また、同じ BizTalk MessageBox データベースから同じ追跡データを処理する BizTalk サーバーが他にないことを確認します。

    注:

    xxx は、テーブルの実際の名前、データベース所有者、SQL Serverを実行しているコンピューター、およびデータベース名のプレースホルダーです。

  • 表示されるエラー テキストが次のエラー メッセージに似ている場合:

    タイムアウト期間が経過しました。 The timeout period elapsed prior to completion of the operation or the server is not responding.

状態

この動作は仕様です。

詳細

別の TDDS が同じデータを処理しているか、TDDS ロック エラー メッセージを保持している SQL Server に孤立したセッションがある場合は、複数の Tracking Data Decode Service (TDDS) が同時に同じデータで処理されていることを示します。 この動作により、データがロックされ、データへのアクセスが禁止されます。 クラスター化またはマルチノードのBizTalk Server環境でこのエラー メッセージが表示される場合は、次の手順に従って、BizTalk Serverのインストール時に作成された適切なSQL Server データベース ロールにドメイン グループが追加されていることを確認します。

注:

BizTalk ServerがインストールされているSQL Serverの各インスタンスで、次の手順に従う必要があります。

Microsoft SQL Server 2005

  • BAMArchive データベースを構成する

    1. SQL Server Management Studio を開きます。
    2. 構成するSQL Serverのインスタンスを展開し、[データベース] を展開し、[BAMArchive] を展開し、[セキュリティ] を展開し、[ロール] を展開して、[データベース ロール] をクリックします。
    3. [BTS_ADMIN_USERS] をダブルクリックします。 BizTalk Server Administrators グループがこのロールのメンバーでない場合は、BizTalk Server Administrators グループをロールに追加し、[OK] をクリックします
    4. [ユーザー] をクリックします。 BizTalk 分離ホスト ユーザー グループがこのデータベースのログインでない場合は、BizTalk 分離ホスト ユーザー グループ ログインをデータベースに追加し、[OK] をクリック します
    5. [ データベース ロール] をクリックし、[ BTS_HOST_USERS] をダブルクリックします。 BizTalk 分離ホスト ユーザー グループが BTS_HOST_USERS ロールのメンバーでない場合は、BizTalk 分離ホスト ユーザー グループ ログインを BTS_HOST_USERS ロールに追加し、[OK] をクリック します
  • BAMPrimaryImport データベースを構成する

    1. [ データベース] で、[ BAMPrimaryImport] を展開します。
    2. [ セキュリティ] を展開し、[ ユーザー] をクリックします。
    3. BizTalk サービス アカウント (BtsService) アカウントをユーザーとして追加します。 この手順は、BizTalk Server構成ウィザード (Configuration.exe) を実行しても自動的には実行されません。 これを行うには、[ ユーザー] を右クリックし、[ 新しいユーザー] をクリックし、ユーザーを追加して、[OK] をクリック します
    4. [ ロール] を展開し、[ データベース ロール] をクリックします。
    5. BAM_EVENT_WRITERダブルクリックし、BizTalk サービス アカウントとBizTalk Server Administrators グループ ログインをBAM_EVENT_WRITER ロールに追加し、[OK] をクリックします
    6. BAM_ManagementWSダブルクリックし、BizTalk サービス アカウントとBizTalk Server Administrators グループ ログインをBAM_ManagementWS ロールに追加し、[OK] をクリックします
  • BizTalkDTADb データベースを構成する

    1. [ データベース] で、[ BizTalkDTADb] を展開します
    2. [ セキュリティ] を展開し、[ ロール] を展開し、[ データベース ロール] をクリックします。
    3. [BAM_EVENT_WRITER] をダブルクリックします。 BizTalk Server Administrators グループ ログインと BizTalk サービス アカウント ログインをBAM_EVENT_WRITER ロールに追加し、[OK] をクリックします
    4. [HM_EVENT_WRITER] をダブルクリックします。 BizTalk Server Administrators グループ ログインと BizTalk サービス アカウント ログインをHM_EVENT_WRITER ロールに追加し、[OK] をクリックします
  • BizTalkMgmtDb データベースを構成する

    1. [ データベース] で、[ BizTalkMgmtDb] を展開します
    2. [ セキュリティ] を展開し、[ ロール] を展開し、[ データベース ロール] をクリックします。
    3. [BAM_CONFIG_READER] をダブルクリックします。 BizTalk Server Administrators グループ ログインと BizTalk サービス アカウント ログインをBAM_CONFIG_READER ロールに追加し、[OK] をクリックします
  • BizTalkMsgBoxDb データベースを構成する

    1. [ データベース] で、[ BizTalkMgmtDb] を展開します
    2. [ セキュリティ] を展開し、[ ユーザー] をクリックします。
    3. 右側のウィンドウを右クリックし、[ 新しいユーザー] をクリックし、BizTalk サービス アカウントをログインとしてこのデータベースに追加し、[OK] をクリック します
    4. [ ロール] を展開し、[ データベース ロール] をクリックします。
    5. BAM_EVENT_READERダブルクリックし、BizTalk Service アカウント ログインをBAM_EVENT_WRITERロールに追加し、[OK] をクリックします

Microsoft SQL Server 2000

  • BAMArchive データベースを構成する

    1. SQL Server Enterprise Manager を開きます。

    2. 構成するSQL Serverのインスタンスを展開し、[データベース] を展開し、[BAMArchive] を展開して、[ロール] をクリックします。

    3. [BTS_ADMIN_USERS] をダブルクリックします。

      BizTalk Server Administrators グループがこのロールのメンバーでない場合は、[追加] をクリックしてグループを追加し、[OK] をクリックします

      注:

      BizTalk Server Administrators グループを使用できない場合は、次の手順に従います。

      1. [ キャンセル] をクリックします。
      2. [ ログイン] をクリックします。
      3. BizTalk Server Administrators グループをデータベースの新しいログインとして追加し、[OK] をクリックします
      4. [ ロール] をクリックします。
      5. [追加] をクリックして、BizTalk Server Administrators グループをロールに追加します。
      6. [OK] をクリックします。
    4. [ユーザー] をクリックします。

      BizTalk 分離ホスト ユーザー グループがこのデータベースのログインでない場合は、右側のウィンドウを右クリックし、[ 新しいユーザー] をクリックし、BizTalk 分離ホスト ユーザー グループ ログインをデータベースに追加して、[OK] をクリック します

    5. [ ロール] をクリックし、[ BTS_HOST_USERS] をダブルクリックします。

      BizTalk 分離ホスト ユーザー グループが BTS_HOST_USERS ロールのメンバーでない場合は、[ 追加 ] をクリックして、BizTalk 分離ホスト ユーザー グループ ログインを BTS_HOST_USERS ロールに追加し、[OK] をクリック します

  • BAMPrimaryImport データベースを構成する

    1. [ データベース] で、[ BAMPrimaryImport] を展開します。

    2. BizTalk サービス アカウント (BtsService) をユーザーとして追加する必要があります。 この手順は、BizTalk Server構成ウィザード (ConfigFramework.exe) を実行しても自動的には実行されません。 これを行うには、次の手順を実行します。

      1. [ユーザー] をクリックします。
      2. 右側のウィンドウを右クリックし、[ 新しいユーザー] をクリックし、BizTalk サービス アカウント ログインをこのデータベースに追加します。
      3. [OK] をクリックします。
    3. [ ロール] をクリックし、[ BAM_EVENT_WRITER] をダブルクリックします。

    4. BizTalk サービス アカウントと BizTalk Server Administrators グループ ログインを BAM_EVENT_WRITER ロールに追加します。

    5. [OK] をクリックします。

    6. BizTalk Server 2003 で、[ロール] の [BAMQueryWS] をダブルクリックします。 BizTalk Server 2006 で、[ロール] の [ManagementWS] をダブルクリックします。

    7. BizTalk サービス アカウントと BizTalk 分離ホスト ユーザー グループ ログインを BAMQueryWS ロールに追加します。

    8. [OK] をクリックします。

  • BizTalkDTADb データベースを構成する

    1. [ データベース] で、[ BizTalkDTADb] を展開します
    2. [ ロール] をクリックし、[ BAM_EVENT_WRITER] をダブルクリックします。
    3. BizTalk Server Administrators グループ ログインと BizTalk サービス アカウント ログインを BAM_EVENT_WRITER ロールに追加します。
    4. [OK] をクリックします。
    5. [ ロール] で、[ HM_EVENT_WRITER] をダブルクリックします。
    6. BizTalk Server Administrators グループと BizTalk サービス アカウント ログインを HM_EVENT_WRITER ロールに追加します。
    7. [OK] をクリックします。
  • BizTalkMgmtDb データベースを構成する

    1. [ データベース] で、[ BizTalkMgmtDb] を展開します
    2. [ ロール] をクリックし、[ BAM_CONFIG_READER] をダブルクリックします。
    3. BizTalk サービス アカウントを BAM_CONFIG_READER ロールに追加します。
    4. [OK] をクリックします。
  • BizTalkMsgBoxDb データベースを構成する

    1. [ データベース] で、[ BizTalkMsgBoxDb] を展開します
    2. [ユーザー] をクリックします。
    3. 右側のウィンドウを右クリックし、[ 新しいユーザー] をクリックし、このデータベースへのログインとしてサービス アカウントを追加します。
    4. [OK] をクリックします。
    5. [ ロール] で、 BAM_EVENT_READER ロールをダブルクリックします。
    6. BizTalk サービス アカウントを BAM_EVENT_READER ロールに追加します。
    7. [OK] をクリックします。

重要

既定では、これらのデータベース セキュリティ設定は、BizTalk Server 2004 を構成するときに既に設定されています。