É possibile creare un'applicazione per utilizzare l'adattatore di risorse IMS TM per interagire con IMS mediante CCI (Common Client Interface).
Per accedere a transazioni IMS™ tramite l'adattatore di risorse IMS, è possibile scrivere il codice sorgente per le applicazioni e non utilizzare il codice dell'applicazione generato dall'ambiente di sviluppo. Ciò è differente dall'utilizzo di un ambiente di sviluppo come Rational Application Developer per generare applicazioni, cosicché la codifica non è necessaria.
Per scrivere il codice, l'applicazione deve utilizzare il programma di interfaccia CCI (Common Client Interface). L'API CCI fornisce l'accesso da client J2EE, come i bean enterprise, tecnologia JSP (JavaServer Pages) e servlet, ai sistemi informativi aziendali backend (EIS), come ad esempio IMS.
Un oggetto IMSConnection può essere creato da quell'oggetto IMSConnectionFactory. Le proprietà dell'oggetto IMSConnection possono essere specificate in un oggetto IMSConnectionSpec passato come un parametro per ottenere il metodo getConnection o i valori predefiniti definiti nell'oggetto IMSConnectionFactory che verrà utilizzato. Dopo aver ottenuto IMSConnection, è possibile creare IMSInteraction da IMSConnection. IMSInteraction rappresenta l'interazione da eseguire su quella connessione. Come con la connessione, le interazioni possono avere proprietà personalizzate prese dalla classe IMSInteractionSpec.
Per eseguire l'interazione, l'applicazione effettua una chiamata al metodo execute() dell'oggetto IMSInteraction, passando oggetti di intput e output per contenere i dati. Creare una matrice di byte di input contenente valori per ciascun campo nel messaggio di input a IMS. Similmente, creare anche una matrice di byte di output per contenere il messaggio di risposta restituito da IMS. Il valore di ciascun campo nel messaggio di output viene estratto dalla matrice di byte di output.
public void execute() { try { ConnectionFactory cf = null; if (isManaged) { //Use JNDI lookup to get ConnectionFactory instance - assumes connection factory has JNDI name of MyIMS Context ic = new InitialContext(); cf = (ConnectionFactory) ic.lookup("MyIMS"); } else { //Create and set values for ManagedConnectionFactory IMSManagedConnectionFactory mcf = new IMSManagedConnectionFactory(); mcf.setDataStoreName("MyDSName"); mcf.setHostName("myHostNm"); mcf.setPortNumber(new Integer(1234)); //Create connection factory from ManagedConnectionFactory cf = (IMSConnectionFactory) mcf.createConnectionFactory(); } Connection connection = cf.getConnection(); //Create interaction with IMS to run IVTNO transaction IMSInteraction interaction = (IMSInteraction) connection.createInteraction(); IMSInteractionSpec ixnSpec = new IMSInteractionSpec(); ixnSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND_RECEIVE); //Create new input record input = new PhoneBookInputRecordField("cp037"); input.setIn__ll((short)59); input.setIn__zz((short) 0); input.setIn__trcd("IVTNO"); input.setTranCodeLength(10); input.setIn__command("DISPLAY"); input.setIn__name1("LAST3"); input.setIn__name2(""); input.setAllFieldsGiven(false); PhoneBookOutputRecordField //Create new output record output = new PhoneBookOutputRecordField("cp037"); //Execute interaction interaction.execute(ixnSpec, input, output); //Display output System.out.println ("Output is: "); System.out.println("\nMessage: " + output.getOut__mesg() + "\nName:" + output.getOut__name1() + " " + output.getOut__name2() + "\nExtension: " + output.getOut__extn() + "\nZipcode: " + output.getOut__zip()); } catch (Exception e) { e.printStackTrace(); } finally { //Close both the interaction and the connection interaction.close(); connection.close(); } }