This content has been marked as final. Show 7 replies
Could you give us more details about your configuration and the exception?
If configured correctly sending messages to IBM's MQ should not be a problem. Are you using the MQ transport?
You could also look at weblogic's messaging bridges. With a setup using a bridge, your business service would publish to a local queue (in my experience a lot more efficient) and weblogic's messaging bridge would take care of forwarding the messages to the foreign destination. With the added benefit of hiding any availability problems of the foreign destination for your business service. If the MQ queue is not available your business service won't fail, the bridge will take care of forwarding the messages once the queue is available again.
Thank's for quick reply,
Yes i have configure MQ transport according to oracle documentation, uri of the messaging queue are as follows mq://NSI.TEMP.OUT?conn=NsiDistributions/resources/MQResource
When NSI.TEMP.OUT is a local queue everything works fine, but when it's a remote queue it throws exception MQ 2045, which mean that MQRC_OPTION_NOT_VALID_FOR_TYPE.
I also tried to configure transport PUT option with this MQC.MQOO_OUTPUT parameter, but couldn't success to publish.
Ok I understand now. When you said remote I thought you meant a destination outside the service bus, and not an MQ remote queue. Unfortunately I have little advice to give. The documentation states:
When you create an MQ service, select the transport protocol as mq and specify the Endpoint URI in the Transport Configuration >page. Specify the Endpoint URI in mq://local-queue-name?conn=mq-connection-resource-ref format whereI don't know if it's possible to use a remote queue directly, my knowledge of MQ is limited. Hopefully someone else can help. Or you could contact support and ask if remote queues are supported.
local-queue-name is the name of the local queue configured on the MQ server
mq-connection-resource-ref points to the location of the MQ connection resource
Thank you eduardo,
according to your suggestion "mq://local-queue-name?conn=mq-connection-resource-ref", this configuration only work with local messaging queue. Still i haven't found any way to publish message to remote messaging queue, will try to create trigger on queue to redirect message from local queue to remote queue.
There is a possibility of using the alias queue to realize your requirement to publish a message to the remote queue.
The IBM documentation states "+An alias queue allows applications to access a queue by referring to it indirectly in MQI calls. When an alias queue name is used in an MQI call, the name is resolved to the name of either a local or a remote queue at run time.+"
I am not sure how this would happen in OSB. But going by the usage of the alias queue, this should work for you.
You can create an alias queue on the local queue manager that points to the remote queue, to which you want to publish the message. And then use the alias queue name in the URI.
You might want to give this a try.
I configured the MQ using mq://local-queue-name?conn=mq-connection-resource-ref , where local-queue-name is the name of the local queue on the MQ Server, but the channel used in the MQ server to the queue must be a Channel Server type.
The problem i have describe above is not related with local MQ. I have remote MQ manager which located on another computer. when i am trying to connect with REMOTE/Alias queue created on MQ manager, OSB throws exception that such queue is not exists.