docs: @Override
      public JmsConnectionFactory createConnectionFactory() throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "createConnectionFactory");
          JmsConnectionFactory jmscf = null;
  
          // get a jca managed connection factory, which is used to construct
          // the jms connection factory.
          JmsJcaFactory jcaFact = JmsJcaFactory.getInstance();
  
          if (jcaFact == null) {
              // This indicates that the jmsra.impl class could not be loaded by their
              // static initializer. Nothing we can do about that...
  
              // d238447 FFDC review. FFDC has already been generated by JmsJcaFactory, so
              //   don't generate one here.
              throw (JMSException) JmsErrorUtils.newThrowable(
                                                              JMSException.class,
                                                              "UNABLE_TO_CREATE_FACTORY_CWSIA0008",
                                                              new Object[] { "JmsJcaFactoryImpl", "sib.api.jmsraOutboundImpl.jar" },
                                                              tc
                              );
          }
  
          JmsJcaManagedConnectionFactory jcamcf = jcaFact.createManagedConnectionFactory();
  
          // invoke the construction of a jms connection factory - the jca managed
          // connection factory will call back into the jms api code by getting a
          // JmsRAFactoryFactory, and calling a create jms connection factory
          // method on it with jca connection factory and jca managed connection
          // factory objects as parameters (the jms cf will keep references to the
          // jca cf and jca mcf).
          try {
              jmscf = (JmsConnectionFactory) jcamcf.createConnectionFactory();
          } catch (ResourceException re) {
              // No FFDC code needed
              // d222942 review - no documentation for when a RE will be thrown, so
              // default exception ok. (A quick look at the RA suggests the exception isn't
              // ever thrown).
              // d238447 FFDC review. From the above comment, generating an FFDC seems ok.
              throw (JMSException) JmsErrorUtils.newThrowable(
                                                              JMSException.class,
                                                              "EXCEPTION_RECEIVED_CWSIA0007",
                                                              new Object[] { re, "JmsFactoryFactoryImpl.createConnectionFactory (#2)" },
                                                              re,
                                                              "JmsFactoryFactoryImpl.createConnectionFactory#2",
                                                              this,
                                                              tc
                              );
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "createConnectionFactory", jmscf);
          return jmscf;
      }