Az alkalmazásnak szüksége lehet a valamely korábbi időpontban várakozási sorba helyezett kimenet lekérésére - innen az aszinkron kimenet kifejezés. Az aszinkron kimenet számos helyzet eredménye lehet. Például a commitMode 0 interakciók nem kézbesített kimenete, a program-program váltások kimenete, az ISRT kimenetek alternatív PCB felé, több üzenetet visszaadó IMS alkalmazás kimenete.
Az aszinkron kimenet lekéréséhez a Java alkalmazás egy SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT vagy egy SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT interakciót hajt végre. Az alkalmazás megadja az interakció végrehajtási metódusa által használt IMSInteractionSpec objektum interactionVerb tulajdonságának értékét és a commitMode tulajdonságának 0 értékét.
Az aszinkron kimenet lekéréséhez kétféle socket kapcsolat használható: megosztható állandó socket és dedikált állandó socket. Az aszinkron kimeneti üzenetek lekérésének módja a használt socket kapcsolattól függően különböző lehet. Az aszinkron kimenet lekéréséhez használható interactionVerb tulajdonságértékek a következők: SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT és SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT (a korábbi SYNC_RECEIVE_ASYNCOUTPUT értékkel együtt).
A SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT és a SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT közötti különbség meghatározza, az IMS Connect hogyan ellenőrzi az IMS OTMA aszinkron várakozási sor kimenetét. Ha a SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT vagy SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT interakciók esetében nincs aszinkron kimenet az IMS OTMA aszinkron várakozási sorban a lekérési kérelem kiadásakor, akkor az IMS Connect végrehajtási időtúllépés értesítést ad vissza, amint az ügyfél által megadott végrehajtási időkorlát lejárt. Ez okból a legkisebb lehetséges végrehajtási időkorlát érték, a 10 ajánlott a SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT interakciók számára.
Ha egy SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT interakció esetében nincs aszinkron kimenet az IMS OTMA aszinkron várakozási sorban a lekérési kérelem kiadásakor, akkor az IMS Connect az interakció executionTimeout tulajdonságában megadott időtartamig fog várni az OTMA üzenet fogadására. Ha még a végrehajtási időkorlát lejártakor sincs aszinkron kimenet a várakozási sorban, akkor az IMS Connect végrehajtási időtúllépés hibát fog visszaadni. Egy SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT interakció számára érdemes megfelelő végrehajtási időkorlát értéket választani a lehetséges legkisebb érték helyett.
Mind a három interactionVerb tulajdonságérték 0 értékű véglegesítési módot igényel és használható mind a megosztható állandó socket kapcsolatokkal, mind a dedikált állandó socket kapcsolatokkal. Ezen felül a purgeAsycOutput, reRoute és reRouteName IMSInteractionSpec tulajdonságok nem érvényesek ezt a három interactionVerb tulajdonságot használó interakciókra és az IMS TM erőforrás-illesztő figyelmen kívül hagyja azokat. Az interactionVerb tulajdonságok meghívásának módja eltérő a dedikált és a megosztható állandó socket kapcsolatokra. Továbbá az aszinkron kimenet a megosztható állandó socket kapcsolatokról két metódus használatával kérhető le: másodlagos ügyfélazonosítóval vagy ugyanabban a reRouteName használatával
Aszinkron kimenet lekérése dedikált állandó socket kapcsolatokról
Egy dedikált állandó socket várakozási sorban lévő kimeneti üzenetének lekéréséhez az ügyfélalkalmazásnak egy 0 véglegesítési módú interakciót kell végrehajtania az IMSInteractionSpec interactionVerb tulajdonságának SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT vagy SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT értékével.
Dedikált állandó socket kapcsolaton az IMSInteractionSpec megfelelő interactionVerb értékével egy 0 véglegesítési módú interakció végrehajtásához az ügyfélalkalmazásnak ezen felül az IMSConnectionSpec clientID tulajdonságának is értéket kell adnia. A clientID azért szükséges, mert az határozza meg a TPIPE adatcsatornát, amelyről az aszinkron kimenet lekérésre kerül. Dedikált állandó socket-en egy 0 véglegesítési módú interakcióról a kimeneti üzenetek lekéréséhez a SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT/NOWAIT interakcióban meghatározott clientID értéknek meg kell egyeznie az eredeti 0 véglegesítési módú interakció számára megadott értékkel. Másodlagos PCB felé küldött kimeneti üzenetek lekéréséhez a SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT/NOWAIT interakcióban meghatározott clientID értéknek meg kell egyeznie a másodlagos PCB nevével. Egy reRouteName címzetthez átirányított kimeneti üzenetek lekéréséhez a SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT/NOWAIT interakcióban meghatározott clientID értét a reRouteName tulajdonság által jelölt címzettre kell beállítani.
Aszinkron kimenet lekérése másodlagos ügyfélazonosítóval megosztható állandó socket kapcsolatokon
Egy ügyfélalkalmazás másodlagos ügyfélazonosítóval lekérheti az átirányított vagy nem átirányított aszinkron kimeneti üzeneteket bármely OTMA TPIPE adatcsatornáról. Ez a másodlagos ügyfélazonosító az interakció végrehajtási metódusa által használt IMSInteractionSpec objektum altClientID tulajdonságának a megadásával állítható be. A másodlagos ügyfélazonosító megegyezik annak az OTMA TPIPE adatcsatornának a nevével, ahol az aszinkron kimeneti üzenetek találhatók. Egy ügyfélalkalmazás egy interakción belül nem határozhat meg rerouteName nevet és másodlagos ügyfélazonosítót.
Aszinkron kimenet lekérése másodlagos ügyfélazonosító nélkül megosztható állandó socket kapcsolatokon
Az ügyfélalkalmazások másodlagos ügyfélazonosító nélkül csak az interakciók eredményeként kapott nem átirányított aszinkron kimeneti üzeneteket kérheti le. Ezt egy SYNC_RECEIVE_ASYNCOUTPUT, SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT vagy egy SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT interakció segítségével hajtja végre ugyanazon a megosztható állandó socket kapcsolaton ugyanazon alkalmazáson belül, amely meghívta a várakozási sorba került aszinkron kimenetet eredményező interakciót.
Interakció | Socket | clientID | reRouteName | altClientID | Megjegyzések |
---|---|---|---|---|---|
resumeTPIPE, altClientID megadása nélkül | Megosztható | null | null | null | Az aszinkron kimenet lekérését ugyanazon a kapcsolaton kell elvégezni, mint az előző interakcióban. Máskülönben az aszinkron kimenet nem kérhető le. Ha a lekérés meghiúsul, akkor az üzenet elvész. |
resumeTPIPE, altClientID megadása nélkül | Megosztható | null | myRR | null | Aszinkron üzenetek lekérését ugyanazon a kapcsolaton kell elvégezni, mint az előző interakcióban. Ha a lekérés meghiúsul, akkor az üzenet átirányításra kerül a myRR felé. |
resumeTPIPE, altClientID megadásával | Megosztható | null | N/A | myTPIPE | Aszinkron üzenetek "myTPIPE" TPIPE adatcsatornáról lekérésekor a reRouteName és az altClientID kölcsönösen kizárólagos és nem használható egyidejűleg. |
resumeTPIPE | Dedikált | myCID | N/A | N/A | Aszinkron üzenetek lekérése a "myCID" TPIPE adatcsatornáról |