Le service de contexte est chargé de la propagation du contexte (y compris les en-têtes de protocole comme l'en-tête JMS et le contexte utilisateur comme l'ID de compte) tout au long du chemin d'appel SCA (Service Component Architecture). Le service de contexte offre un ensemble d'API et de paramètres configurables.
Lorsque la propagation du service de contexte est bidirectionnelle, le contexte de réponse écrasera systématiquement le contexte en cours. Lorsque vous exécutez un appel d'un composant SCA à un autre, la réponse présentera un contexte différent. Un composant de service aura un contexte entrant, mais si vous appelez un autre service, celui-ci écrasera le contexte sortant d'origine. Le contexte de réponse deviendra alors le nouveau contexte.
Lorsque la propagation du service de contexte est unidirectionnelle, le contexte d'origine reste à l'identique.
Le cycle de vie du service de contexte est associé à un appel. Une demande dispose d'un contexte associé et le cycle de vie de ce context est lié au traitement de cette demande particulière. Lorsque le traitement de cette demande se termine, le cycle de vie de ce contexte s'achève.
//Import the necessary classes; import com.ibm.bpm.context.ContextService; import com.ibm.websphere.sca.ServiceManager; import com.ibm.bpm.context.cobo.ContextObject; import com.ibm.bpm.context.cobo.ContextObjectFactory; import com.ibm.bpm.context.cobo.HeaderInfoType; import com.ibm.bpm.context.cobo.UserDefinedContextType; //Locate ContextService; ContextService contextService = (ContextService)ServiceManager.INSTANCE.locateService("com/ibm/bpm/context/ContextService"); // Get header info HeaderInfo headerInfo = contextService.getHeaderInfo(); // Get user defined context in current execution context UserDefinedContextType userDefinedContext = contextService.getUserDefinedContext(); if(userDefinedContext == null){ // create a new context if context is null userDefinedContext = ContextObjectFactory.eINSTANCE.createUserDefinedContextType() } // Do some modification to header info and userDefinedContext // Set user defined context back to the current execution context. contextService.setUserDefinedContext(userDefinedContext); // Set header info back to the current execution context. contextService.setHeaderInfo(headerInfo);
Les services de contexte possèdent des règles et des tables configurables qui dictent le comportement de la liaison. Pour plus d'informations, voir la documentation API et SPI générées disponible à la section Référence. Lors du développement dans WebSphere Integration Developer, vous pouvez définir le service de contexte sur les propriétés d'importation ou d'exportation. Pour plus de détails, reportez-vous aux informations relatives aux liaisons d'importation et d'exportation dans le centre de documentation de WebSphere Integration Developer.