次の方法で共有


ReceivePorts (BizTalk Server サンプル)

ReceivePorts サンプルは、 ExplorerOM 管理クラスを使用して新しい受信ポートを作成する方法を示しています。

前提条件

  • このサンプルの管理オブジェクトを使用するには、BizTalk Server管理特権が必要です。

  • Windows PowerShell スクリプトを実行するには、Windows PowerShell 実行ポリシーが必要です。 詳細については、「about_Execution_Policies」を参照してください。

このサンプルの処理

このサンプルでは、Microsoft.BizTalk.ExplorerOM 名前空間の BtsCatalogExplorer クラスと ReceivePort クラスを使用して、新しい受信ポートをBizTalk Serverに追加する方法を示します。 このサンプルは、Microsoft Visual C# で記述されています。 このトピックには、Windows PowerShell のスクリプト例も含まれています。 このサンプルは次の操作を示します。

  • BtsCatalogExplorer クラスを使用して BizTalk 管理データベースに接続します。

  • AddNewReceivePort メソッドを使用して、新しい受信ポートを追加します。

  • 受信ポートを列挙する。

  • 受信ポートを削除する。

このサンプルの場所

このサンプルは、SDK がある次の場所にあります。

<サンプル パス>\管理\ExplorerOM\ReceivePorts

次の表は、このサンプルのファイルとその目的を示しています。

ファイル 説明
ReceivePorts.cs このサンプルで示す操作用の Visual C# ソース ファイル。
ReceivePorts.sln と ReceivePorts.csproj サンプルのソリューションとプロジェクト ファイル。

このサンプルをビルドする

  1. Visual Studio で、ソリューション ファイル ReceivePorts.sln を開きます。

  2. [ビルド] メニューの [ソリューションのビルド] をクリックします。

このサンプルを実行する

  1. コマンド ウィンドウを開き、次のフォルダーに移動します。

    <サンプル パス>\管理\ExplorerOM\ReceivePorts\bin\Debug

  2. ReceivePorts.exe ファイルを実行します。 新しい受信ポートが作成され、ポートの列挙に表示されます。 列挙直後に受信ポートが削除されます。

Windows PowerShell スクリプトの例

次Windows PowerShellスクリプトの例を使用して、ExplorerOM クラスの同じ機能を示すことができます。

#==================================================================#
#===                                                            ===#
#=== Create a new receive port named "My Receive Port".         ===#
#===                                                            ===#
#==================================================================#
Function CreateReceivePort()
{
  #=== Passing false here creates a one-way receive port opposed to a two-way ===#
  $myreceivePort = $catalog.AddNewReceivePort($false)

  $myreceivePort.Name = "My Receive Port"
  $myreceivePort.Tracking = [Microsoft.BizTalk.ExplorerOM.TrackingTypes] "AfterReceivePipeline"

  #=== Try to commit the changes made so far. If the commit fails, ===#
  #=== roll back all changes.                                      ===#
  $catalog.SaveChanges()
}

#===============================================================#
#===                                                         ===#
#=== Delete the receive port named "My Receive Port"         ===#
#===                                                         ===#
#===============================================================#
Function DeleteReceivePort
{
  $receivePort = $catalog.ReceivePorts["My Receive Port"]

  if ($receivePort -ne $null)
  {
    $catalog.RemoveReceivePort($receivePort)

    #=== Try to commit the changes made so far. If the commit fails, ===#
    #=== roll back all changes in the trap handler.                  ===#
    $catalog.SaveChanges()
  }
}

#================================================================#
#===                                                          ===#
#=== Enumerate the receive ports.                             ===#
#===                                                          ===#
#================================================================#
Function EnumerateReceivePorts
{
   #=== Enumerate the receive ports. ===#
   foreach ($receivePort in $catalog.ReceivePorts)
   {
      Write-host "`r`n$($receivePort.Name)"
   }

   Write-host ""
}

#===================#
#=== Main Script ===#
#===================#

#=== Make sure the ExplorerOM assembly is loaded ===#

[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")

#=== Connect to the BizTalk Management database ===#

$Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$Catalog.ConnectionString = "SERVER=.;DATABASE=BizTalkMgmtDb;Integrated Security=SSPI"

#==================================================================#
#=== Register a trap handler to discard changes on exceptions   ===#
#=== Execution will continue in the event we want to delete the ===#
#=== receive port.                                              ===#
#==================================================================#

$Script:NoExceptionOccurred = $true
$ErrorActionPreference="silentlycontinue"
trap
{
  $Script:NoExceptionOccurred = $false
  "Exception encountered:`r`n"; $_; "`r`nDiscarding changes and continuing execution so we can attempt to clean up the receive port...`r`n"
  $Catalog.DiscardChanges()
}

#=== Create the new receive port ===#
Write-Host "`r`nAttempting to create `"My Receive Port`"..."
CreateReceivePort

#=== Enumerate each receive port ===#
Write-Host "`r`nEnumerating all receive ports...`r`n"
EnumerateReceivePorts

#=== Prompt before removing the new example receive port ===#
Write-Host "`r`nPress <ENTER> to delete `"My Receive Port`"..."
Read-Host
DeleteReceivePort

#=== Enumerate again to show the receive port was removed ===#
Write-Host "`r`nEnumerating all receive ports to show `"My Receive Port`" was removed...`r`n"
EnumerateReceivePorts

次に、Windows PowerShell スクリプトを実行して新しい受信ポートを作成した場合の例を示します。

PS C:\> .\receiveports.ps1

Attempting to create "My Receive Port"...

Enumerating all receive ports...

BatchControlMessageRecvPort

ResendReceivePort

HelloWorldReceivePort

CBRReceivePort

RP_ReceivePOFromInternal

RP_ShipmentAgency1_OrderFiles

RP_ShipmentAgency2_OrderFiles

RP_ReceivePOFromBuyer

RP_Receive_ShipmentAgency_Ack

My Receive Port

Press <ENTER> to delete "My Receive Port"...

Enumerating all receive ports to show "My Receive Port" was removed...

BatchControlMessageRecvPort

ResendReceivePort

HelloWorldReceivePort

CBRReceivePort

RP_ReceivePOFromInternal

RP_ShipmentAgency1_OrderFiles

RP_ShipmentAgency2_OrderFiles

RP_ReceivePOFromBuyer

RP_Receive_ShipmentAgency_Ack

参照

Admin-ExplorerOM (BizTalk Server Samples フォルダー)