La liaison EIS peut accepter des données en entrée pour les spécifications InteractionSpec et ConnectionSpec spécifiées, en utilisant un objet de données enfant bien défini qui accompagne la charge. Ceci permet des interactions demande-réponse dynamiques avec un adaptateur de ressources par le biais de InteractionSpec et l'authentification des composants par le biais de ConnectionSpec.
L'interface javax.cci.InteractionSpec transmet des informations sur le mode de traitement de la demande d'interaction avec l'adaptateur de ressources. Elle comporte également des informations sur l'accomplissement de l'interaction après la demande. Ces communications bidirectionnelles par le biais des interactions sont parfois appelées conversations.
Dans cet exemple, une interface spécifie que l'entrée d'une opération est un objet de données Compte. Cette interface appelle une application de liaison d'importation EIS dans le but d'envoyer et de recevoir une propriété InteractionSpec dynamique appelée workingSet avec la valeur xyz.
BOFactory dataFactory = (BOFactory) \ serviceManager.locateService("com/ibm/websphere/bo/BOFactory"); //Wrapper for doc-lit wrapped style interfaces, //skip to payload for non doc-lit DataObject docLitWrapper = dataFactory.createByElement / ("http://mytest/eis/Account", "AccountWrapper");Créez la charge.
DataObject account = docLitWrapper.createDataObject(0); DataObject accountInfo = account.createDataObject("AccountInfo"); //Perform your setting up of payload //Construct properties data for dynamic interaction DataObject properties = account.createDataObject("properties");Pour le nom workingSet, définissez la valeur attendue (xyz).
properties.setString("ISworkingSet", "xyz"); //Invoke the service with argument Service accountImport = (Service) \ serviceManager.locateService("AccountOutbound"); DataObject result = accountImport.invoke("createAccount", docLitWrapper); //Get returned property DataObject retProperties = result.getDataObject("properties"); String workingset = retProperties.getString("ISworkingSet");Vous pouvez utiliser des propriétés ConnectionSpec pour l'authentification des composants dynamiques. Les mêmes règles s'appliquent que ci-dessus, sauf que le préfixe du nom de propriété doit être CS au lieu de IS. Les propriétés ConnectionSpec ne sont pas bidirectionnelles. Le même objet de données properties peut contenir à la fois des propriétés IS et CS.
Pour utiliser les propriétés ConnectionSpec, définissez resAuth spécifié dans la liaison d'importation sur Application. Assurez-vous également que l'adaptateur de ressources prend en charge l'autorisation de composant. Pour plus de détails, reportez-vous au chapitre 8 du document J2EE Connector Architecture Specification.