public JsDestinationAddress createSystemDestination ( String prefix , Reliability reliability ) throws SIResourceException , SIMPDestinationAlreadyExistsException , SIIncorrectCallException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "createSystemDestination" , new Object [ ] { prefix , reliability } ) ; //there is no detailed prefix validation here as System Destinations are purely //internal if ( prefix == null || prefix . length ( ) > 24 ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "createSystemDestination" , "SIInvalidDestinationPrefixException" ) ; SibTr . error ( tc , "INTERNAL_MESSAGING_ERROR_CWSIP0005" , new Object [ ] { "com.ibm.ws.sib.processor.impl.DestinationManager" , "1:5324:1.508.1.7" , prefix } ) ; throw new SIInvalidDestinationPrefixException ( nls . getFormattedMessage ( "INTERNAL_MESSAGING_ERROR_CWSIP0005" , new Object [ ] { "com.ibm.ws.sib.processor.impl.DestinationManager" , "1:5329:1.508.1.7" , prefix } , null ) ) ; } JsDestinationAddress destAddr = SIMPUtils . createJsSystemDestinationAddress ( prefix , messageProcessor . getMessagingEngineUuid ( ) ) ; destAddr . setBusName ( messageProcessor . getMessagingEngineBus ( ) ) ; // Check and see if the destination already exists. //note that this is treated as an application call so we don't want to see //those that are being deleted DestinationHandler handler = getDestinationInternal ( destAddr . getDestinationName ( ) , destAddr . getBusName ( ) , false ) ; if ( handler != null ) { // The system destination exists for the destination prefix set so // just return. if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "createSystemDestination" , destAddr ) ; return destAddr ; } DestinationDefinition destDef = messageProcessor . createDestinationDefinition ( DestinationType . QUEUE , destAddr . getDestinationName ( ) ) ; destDef . setMaxReliability ( reliability ) ; destDef . setDefaultReliability ( reliability ) ; destDef . setUUID ( new SIBUuid12 ( ) ) ; Set < String > destinationLocalizingSet = new HashSet < String > ( ) ; destinationLocalizingSet . add ( messageProcessor . getMessagingEngineUuid ( ) . toString ( ) ) ; createDestinationLocalization ( destDef , messageProcessor . createLocalizationDefinition ( destDef . getName ( ) ) , destinationLocalizingSet , false ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "createSystemDestination" , destAddr ) ; return destAddr ; }
Creates a System destination with the given prefix and reliability