WAS v8.5 > Develop applications > Develop web services - Transports > Configure the SOAP over JMS transport for JAX-WS web servicesInvoking one-way JAX-RPC web service requests transactionally using the JMS transport (deprecated)
Use the enableTransactionalOneWay property to ensure that one-way JAX-RPC web service requests using the IBM proprietary JMS transport will be sent to the destination queue or topic transactionally. Deprecated feature: Beginning with WebSphere Application Server 7.0, the IBM proprietary SOAP over JMS protocol is deprecated in favor of the emerging industry standard protocol. We can use the IBM proprietary SOAP over JMS protocol with your Java API for XML Web Services (JAX-WS) or JAX-RPC web services, however, you are encouraged to take advantage of the SOAP over JMS protocol standard. This task describes configuring a permanent replyTo queue when using the IBM proprietary SOAP over JMS transport. To learn more about the SOAP over JMS standard, see the using SOAP over JMS to transport web services documentation.
When using JMS to transport web service requests, the default behavior is for the SOAP message to be added to the destination queue or topic non-transactionally or outside of the client application's transaction. Adding the SOAP message to the destination queue or topic is done outside of the transaction to avoid synchronization problems that can occur with two-way web service requests. However, we can choose to enable one-way requests to be processed as part of the transaction. The enableTransactionalOneWay property can be used to ensure that one-way web service requests that use the JMS transport will be sent to the destination queue or topic transactionally. When the client application invokes the one-way web service request, the resulting SOAP request message is added to the destination queue or topic as part of the client application's transaction.
Use one of the following ways to enable the enableTransactionalOneWay property.
- Set the enableTransactionalOneWay property programmatically on the client JAX-RPC Stub or Call object.
When using a static Stub to invoke the web service operation, set the enableTransactionalOneWay property on the Stub object before invoking the web service method. When using a Call object to invoke the web service operation, set the enableTransactionalOneWay property on the Call object before invoking the invokeOneWay() method.
Service service = /* Obtain the desired service */ MyStub stub = service.getPort(); /* Set enableTransactionalOneWay property on Stub */ stub._setProperty(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY, new Boolean(true)); /* Invoke the one-way operation */ stub.myOneWayOperation("Parm1");The value of the property is Boolean.
- Set the enableTransactionalOneWay property as a custom property in the ibm-webservicesclient-bnd.xmi deployment descriptor file using wsadmin.
For more information about wsadmin options, see the options for the AdminApp object install, installInteractive, edit, editInteractive, update, and updateInteractive commands information.
Use the $AdminApp object along with the -WebServicesClientCustomProperty option to set the value of the property within the client binding file, ibm-webservicesclient-bnd.xmi. The value of the custom property, enableTransactionalOneWay, is either true or false.
- Jacl:
$AdminApp edit MyApplication {-WebServicesClientCustomProperty {{MyEJBJar.jar MyEJB service/MyServiceRef MyPort enableTransactionalOneWay true}}}
- Using Jython:
AdminApp.edit('MyApplication', ['-WebServicesClientCustomProperty', [['MyEJBJar.jar', 'MyEJB', 'service/MyServiceRef ', 'MyPort', 'enableTransactionalOneWay', 'true']]])
Results
You have a web service client application that is configured to invoke one-way requests transactionally while using the JMS transport.
After we have enabled the enableTransactionalOneWay property, run the client application.
Related
Use SOAP over JMS to transport web services
Tasks: Implementing web services applications
Related information:
IBM proprietary SOAP over JMS protocol (deprecated)
SOAP over JMS protocol