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
Dans Visual Studio, ouvrez le fichier solution ReceivePorts.sln.
Dans le menu Générer, cliquez sur Générer la solution.
Exécuter cet exemple
Ouvrez une fenêtre de commande, puis accédez au dossier suivant :
<Chemin d’accès> des exemples\Administration\ExplorerOM\ReceivePorts\bin\Debug
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