Em um ambiente gerenciado, use a API do CCI para consultar uma instância IMSConnectionFactory no namespace de JNDI e, então, usá-la para obter uma instância IMSConnection.
ConnectionFactory cf = null;
if (isManaged) {
//Use a consulta JNDI para obter a instância ConnectionFactory
//Presuma que o connection factory tenha um nome JNDI de MyIMS
Context ic = new InitialContext();
cf = (ConnectionFactory) ic.lookup("MyIMS");
Se o JNDI não estiver configurado, um aplicativo CCI poderá configurar manualmente um objeto IMSManagedConnectionFactory e usá-lo para obter um connection factory.
IMSManagedConnectionFactory mcf = new IMSManagedConnectionFactory();
mcf.setDataStoreName("MyDSName");
mcf.setHostName("myHostNm");
mcf.setPortNumber(new Integer(1234));
...
//Criar connection factory de ManagedConnectionFactory
cf = (IMSConnectionFactory) mcf.createConnectionFactory();
O exemplo a seguir mostra o uso das interfaces CCI para
executar um comando em um EIS. public void execute() {
try {
ConnectionFactory cf = null;
if (isManaged) {
//Usar consulta JNDI para obter instância ConnectionFactory - assume-se
//que o connection factory possua o nome MyIMS de JNDI
Context ic = new InitialContext();
cf = (ConnectionFactory) ic.lookup("MyIMS");
} else {
//Criar e configurar valores para ManagedConnectionFactory
IMSManagedConnectionFactory mcf = new IMSManagedConnectionFactory();
mcf.setDataStoreName("MyDSName");
mcf.setHostName("myHostNm");
mcf.setPortNumber(new Integer(1234));
//Criar connection factory de ManagedConnectionFactory
cf = (IMSConnectionFactory) mcf.createConnectionFactory();
}
// Cria um objeto IMSConnection
Connection connection = cf.getConnection();
//Cria uma IMSInteraction a partir da conexão para
//interagir com o IMS para executar a transação IVTNO (Phonebook)
IMSInteraction interaction = (IMSInteraction) connection.createInteraction();
IMSInteractionSpec ixnSpec = new IMSInteractionSpec();
ixnSpec.setInteractionVerb(IMSInteractionSpec.SYNC_SEND_RECEIVE);
//Criar novo registro de entrada
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
//Criar novo registro de saída
output = new PhoneBookOutputRecordField("cp037");
//Executa uma interação chamando o método execute()
interaction.execute(ixnSpec, input, output);
//Exibir saída
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 {
//Fechar a interação e a conexão
interaction.close();
connection.close();
}
}