title: SOAP atomic transaction on WebLogic call can not find transaction coordinator
body: <p><strong>Intro</strong><br>
  I am trying to test behavior of WebCenter Content SOAP Services (GenericSOAP) in an atomic transaction.<br>
  Installed products are (from installations available on Oracle pages, version: 12.2.1.3.0):</p>
  
  <ul>
  <li>WebLogic  </li>
  <li>WebCenter Content  </li>
  </ul>
  
  <p>SOAP client is a simple web application deployed on the WebLogic consisting of:</p>
  
  <ul>
  <li>html page with only a link which calls a servlet</li>
  <li>servlet which calls a service class</li>
  <li>service class with a SOAP client</li>
  </ul>
  
  <p><strong>Short description of a problem</strong><br>
  When calling GenericSOAP in atomic transaction I get an error:  </p>
  
  <pre><code>Error while invoking endpoint http://&lt;host&gt;:7001/wls-wsat/RegistrationPortTypeRPC from client
  </code></pre>
  
  <p>Note: <code>&lt;host</code>> is an actual IP address of the host, I just replaced it with word <code>&lt;host</code>> manually above and in the log below.</p>
  
  <p><strong>More details</strong><br>
  After installation of WebLogic and WebCenter Content, by using Enterprise Manager I modified policies on the GenericSOAP Web Service:  </p>
  
  <ul>
  <li>removed "oracle/wsmtom_policy"</li>
  <li>added "oracle/no_mtom_policy" (SOAP call as an anonymous user works)</li>
  <li>added "oracle/wss_username_token_service_policy" for simple authentication test (SOAP call as an user works)</li>
  <li>added "oracle/atomic_transaction_policy" for atomic transaction (SOAP call works depending on client configuration)</li>
  </ul>
  
  <p>If I make a SOAP call without any modifications to enable transactional call (same call that was used to test "oracle/wss_username_token_service_policy"), SOAP call works.<br>
  If I register client as transactional with following annotation  </p>
  
  <pre><code>@weblogic.wsee.wstx.wsat.Transactional(
     version = weblogic.wsee.wstx.wsat.Transactional.Version.DEFAULT,
     value = weblogic.wsee.wstx.wsat.Transactional.TransactionFlowType.SUPPORTS
  )
  </code></pre>
  
  <p>SOAP call doesn't work and I get the error stated at the beginning of this question.<br>
  By removing above annotation, SOAP call works again. By adding it back, SOAP call doesn't work.</p>
  
  <p>When logging the SOAP request/response, in the request there is CoordinationContext with the above address.</p>
  
  <p>Log from the UCM_server1-diagnostic.log is:</p>
  
  <pre><code>[UCM_server1] [NOTIFICATION] [] [oracle.wsm.security.policy.scenario.util.ScenarioUtils] [tid: [ACTIVE].ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: &lt;anonymous&gt;] [ecid: e2b32686-5fe2-49d6-bdb4-1238c80399ad-00004c16,0:2] [APP: Oracle UCM Web Services] [partition-name: DOMAIN] [tenant-name: GLOBAL] [J2EE_APP.name: Oracle UCM Web Services] [J2EE_MODULE.name: idcws.war] [WEBSERVICE.name: GenericSoapService] [WEBSERVICE_PORT.name: GenericSoapPort] [oracle.wsm.policy.name: oracle/wss_username_token_service_policy] User name from authenticated subject: ranko
  
  [UCM_server1] [ERROR] [] [] [tid: [ACTIVE].ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: &lt;anonymous&gt;] [ecid: e2b32686-5fe2-49d6-bdb4-1238c80399ad-00004c16,0:2] [APP: Oracle UCM Web Services] [partition-name: DOMAIN] [tenant-name: GLOBAL] [J2EE_APP.name: Oracle UCM Web Services] [J2EE_MODULE.name: idcws.war] [WEBSERVICE.name: GenericSoapService] [WEBSERVICE_PORT.name: GenericSoapPort] Error while invoking endpoint http://&lt;host&gt;:7001/wls-wsat/RegistrationPortTypeRPC from client; ServiceName: {http://schemas.xmlsoap.org/ws/2004/10/wscoor}RegistrationService_V10 ; PortName: {http://schemas.xmlsoap.org/ws/2004/10/wscoor}RegistrationCoordinatorPortTypePort ; Client side features: [weblogic.jws.jaxws.client.ClientIdentityFeature][com.sun.xml.ws.developer.MemberSubmissionAddressingFeature][com.sun.xml.ws.api.addressing.OneWayFeature]; Client side policies: 
  
  [UCM_server1] [ERROR] [] [oracle.webservices.service] [tid: [ACTIVE].ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: &lt;anonymous&gt;] [ecid: e2b32686-5fe2-49d6-bdb4-1238c80399ad-00004c16,0:2] [APP: Oracle UCM Web Services] [partition-name: DOMAIN] [tenant-name: GLOBAL] An error occurred for port: {urn:GenericSoap}GenericSoapPort: oracle.fabric.common.PolicyEnforcementException: The server sent HTTP status code 404: Not Found.
  </code></pre>
  
  <p>To make the call as simple as I can, I am calling "DOC_INFO_BY_NAME" since it takes only one parameter and can be executed as anonymous user.</p>
  
  <p><strong>From additional research:</strong>  </p>
  
  <ul>
  <li>it seems that it fails when it tries to register the service with the transaction coordinator</li>
  <li>there is no need to have SOA installed for the ws-xt to work, WebLogic is enough</li>
  <li>in the JTA part of the WebLogic Console coordinator can be configured, but only the part if I want to secure the messages exchanged. Which I don't need for testing purposes. From what I can see there is no "enable/disable" coordinator, port number, etc.</li>
  <li>Configuration of SOAP endpoints for transaction as explained in the documentation (through WebLogic Console) doesn't work. GenericSOAP service/endpoints are not exposed/visible there.</li>
  <li>Configuration of GenericSOAP endpoint in Enterprise Manager has following values (out of the box):
  
  <ul>
  <li>Atomic Transaction Flow Option: Supports</li>
  <li>Atomic Transaction Version: Default</li>
  </ul></li>
  </ul>
  
  <p>It looks like a “simple case" where coordinator is not working and should be turned on/installed but, from what I have managed to find, it should be available/working out of the box on the “plain” WebLogic.</p>
  
  <p>Thank you for your time and kind regards,<br>
  Ranko</p>