private void sendUsingConnection(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.entry(this, tc, "sendUsingConnection", new Object[] { destination, message, deliveryMode, priority, timeToLive });

        // if the producer is closed throw a JMSException.
        checkClosed();
        // check for sync/async conflicts
        session.checkSynchronousUsage("send");

        // if the supplied message is null, throw a jms MessageFormatException.
        if (message == null) {
            throw (MessageFormatException) JmsErrorUtils.newThrowable(
                                                                      MessageFormatException.class,
                                                                      "INVALID_VALUE_CWSIA0068",
                                                                      new Object[] { "message", null },
                                                                      tc);
        }

        //validates destination and if it is successful gives native destination.
        JmsDestinationImpl nativeDest = validateDestination(destination);

        // Create a new ProducerProps on the fly for these parameters.
        ProducerProperties pp = new ProducerProperties(nativeDest, this, session.getPassThruProps(), null, null);
        pp.setInDeliveryMode(deliveryMode);
        pp.setInPriority(priority);
        pp.setInTTL(timeToLive);

        // Delegate to the internal send method.
        sendMessage(pp, message, nativeDest);

        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(this, tc, "sendUsingConnection");

    }
private void sendUsingConnection ( Destination destination , Message message , int deliveryMode , int priority , long timeToLive ) throws JMSException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "sendUsingConnection" , new Object [ ] { destination , message , deliveryMode , priority , timeToLive } ) ; checkClosed ( ) ; session . checkSynchronousUsage ( "send" ) ; if ( message == null ) { throw ( MessageFormatException ) JmsErrorUtils . newThrowable ( MessageFormatException . class , "INVALID_VALUE_CWSIA0068" , new Object [ ] { "message" , null } , tc ) ; } JmsDestinationImpl nativeDest = validateDestination ( destination ) ; ProducerProperties pp = new ProducerProperties ( nativeDest , this , session . getPassThruProps ( ) , null , null ) ; pp . setInDeliveryMode ( deliveryMode ) ; pp . setInPriority ( priority ) ; pp . setInTTL ( timeToLive ) ; sendMessage ( pp , message , nativeDest ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "sendUsingConnection" ) ; }
This method is internal method which would send message to ME on top
of connection. This is called from Sync send and Async Send. In case of Sync send
it would have guarded with monitor sessionSyncLock.

@param destination
@param message
@param deliveryMode
@param priority
@param timeToLive
@throws JMSException