Partager via


ReceivePorts (exemple BizTalk Server)

L’exemple ReceivePorts montre comment créer un port de réception à l’aide des classes d’administration ExplorerOM .

Prérequis

  • Vous devez disposer BizTalk Server privilèges d’administration pour utiliser les objets administratifs de cet exemple.

  • La stratégie d'exécution de Windows PowerShell doit autoriser l'exécution des scripts. Pour plus d’informations, consultez about_Execution_Policies.

Fonctions de l'exemple

Cet exemple illustre l’utilisation des classes BtsCatalogExplorer et ReceivePort de l’espace de noms Microsoft.BizTalk.ExplorerOM pour ajouter un nouveau port de réception à BizTalk Server. L’exemple est écrit dans Microsoft Visual C#. Un exemple de script Windows PowerShell est également inclus dans cette rubrique. Il illustre les opérations suivantes :

  • Connexion à la base de données BizTalk Management à l’aide de la classe BtsCatalogExplorer .

  • Ajout d’un nouveau port de réception à l’aide de la méthode AddNewReceivePort .

  • énumération des ports de réception ;

  • suppression des ports de réception.

Accès à l'exemple

L'exemple se trouve dans l'emplacement SDK suivant :

<Chemin d’accès> des exemples\Administration\ExplorerOM\ReceivePorts

Le tableau suivant présente les fichiers de cet exemple et décrit leur fonction.

Fichier(s) Description
ReceivePorts.cs Fichier source Visual C# pour les opérations illustrées dans cet exemple.
ReceivePorts.sln et ReceivePorts.csproj Fichier de projet et de solution de l'exemple.

Générer cet exemple

  1. Dans Visual Studio, ouvrez le fichier solution ReceivePorts.sln.

  2. Dans le menu Générer, cliquez sur Générer la solution.

Exécuter cet exemple

  1. Ouvrez une fenêtre de commande, puis accédez au dossier suivant :

    <Chemin d’accès> des exemples\Administration\ExplorerOM\ReceivePorts\bin\Debug

  2. Exécutez le fichier ReceivePorts.exe. Le nouveau port de réception doit avoir été créé et affiché dans l'énumération de port. Le port de réception est immédiatement supprimé après l'énumération.

Exemple de script Windows PowerShell

L’exemple de script Windows PowerShell suivant peut être utilisé pour illustrer les mêmes fonctionnalités que les classes 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

Voici un exemple d'exécution du script Windows PowerShell pour créer le port de réception :

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

Voir aussi

Admin-ExplorerOM (dossier d’exemples BizTalk Server)