code: @Override
      public void createDurableSubscription(final String subscriptionName,
                                            final String durableSubscriptionHome,
                                            final SIDestinationAddress destinationAddress,
                                            final SelectionCriteria criteria,
                                            final boolean supportsMultipleConsumers, final boolean nolocal,
                                            final String alternateUser) throws SIConnectionDroppedException,
                      SIConnectionUnavailableException, SIConnectionLostException,
                      SILimitExceededException, SINotAuthorizedException,
                      SIDurableSubscriptionAlreadyExistsException, SIResourceException,
                      SIErrorException, SIIncorrectCallException,
                      SINotPossibleInCurrentConfigurationException {
  
          checkValid();
  
          _delegateConnection.createDurableSubscription(subscriptionName,
                                                        durableSubscriptionHome, destinationAddress, criteria,
                                                        supportsMultipleConsumers, nolocal, alternateUser);
  
      }
docs: Creates a durable subscription. Checks that the connection is valid and
  then delegates. Wraps the <code>ConsumerSession</code> returned from
  the delegate in a <code>SibRaConsumerSession</code>.
  
  @param subscriptionName
  the name for the subscription
  @param durableSubscriptionHome
  the home for the durable subscription
  @param destinationAddress
  the address of the destination
  @param criteria
  the selection criteria
  @param supportsMultipleConsumers
  flag indicating whether multiple consumers are supported
  @param nolocal
  flag indicating whether local messages should be received
  @param alternateUser
  the name of the user used to create the durable subscription
  (may be null)
  @throws SINotPossibleInCurrentConfigurationException
  if the delegation fails
  @throws SIIncorrectCallException
  if the delegation fails
  @throws SIErrorException
  if the delegation fails
  @throws SIResourceException
  if the delegation fails
  @throws SIDurableSubscriptionAlreadyExistsException
  if the delegation fails
  @throws SINotAuthorizedException
  if the delegation fails
  @throws SILimitExceededException
  if the delegation fails
  @throws SIConnectionLostException
  if the delegation fails
  @throws SIConnectionUnavailableException
  if the connection is not valid
  @throws SIConnectionDroppedException
  if the delegation fails