I have a client connector which uses NetMsmqBinding and is the means by which our applications publish to Neuron. It works fine but I'd like to be able to apply specific binding settings to this service and can't figure out how this would be done.
Specifically, I'd like to be able to set the ReceiveErrorHandling property to Move (instead of Fault) if the service is unable to process the message. We'd like to dynamically publish to a topic based on SOAP Header Action and currently if the topic doesn't exist or if the publisher isn't subscribed to the topic, this causes the service to fault. How can I modify the default client connector service binding properties?
Tags:
There are two different things you need to do here. To modify the binding settings, you need to create a custom service binding. You add the service binding on the Connections tab and click Service Bindings. Add a new binding and enter the custom binding you want. Similar to this:
<netMsmqBinding>
<binding
closeTimeout="TimeSpan"
customDeadLetterQueue="Uri"
deadLetterQueue="Uri"
durable="Boolean"
exactlyOnce="Boolean"
maxBufferPoolSize="Integer"
maxReceivedMessageSize="Integer"
maxRetryCycles="Integer"
name="string"
openTimeout="TimeSpan"
poisonMessageHandling="Disabled/EnabledIfSupported"
queueTransferProtocol="Native/Srmp/SrmpSecure"
receiveErrorHandling="Drop/Fault/Move/Reject"
receiveTimeout="TimeSpan"
receiveRetryCount="Integer"
rejectAfterLastRetry="Boolean"
retryCycleDelay="TimeSpan"
sendTimeout="TimeSpan"
timeToLive="TimeSpan"
useActiveDirectory="Boolean"
useMsmqTracing="Boolean"
useSourceJournal="Boolean">
<security>
<message
algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
clientCredentialType="None/Windows/UserName/Certificate/InfoCard "/>
<transport
msmqAuthenticationMode="None/WindowsDomain/Certificate"
msmqEncryptionAlgorithm="RC4Stream/AES"
msmqProtectionLevel="None/Sign/EncryptAndSign"
msmqSecureHashAlgorithm="MD5/SHA1/SHA256/SHA512" />
</security>
<readerQuotas
maxArrayLength="Integer"
maxBytesPerRead="Integer"
maxDepth="Integer"
maxNameTableCharCount="Integer"
maxStringContentLength="Integer" />
</binding>
</netMsmqBinding>
Save the binding and then on the client connector it will appear on the list of bindings.
For routing based on SOAP Action, are you already using a process to map the action to the topic? You will need to use an Exception step. In the Try block put the publish step and in the Catch block handle the exception and send back a better response.
Neuron ESB Product Support Forums and Communities
© 2024 Created by Neuron Admin. Powered by