2014-10-31 2 views
1

TIBCO 큐에 연결하고 고객 데이터를 가져 오는 코드를 작성했습니다. 그러나 생산으로 옮기기 전에 테스트 할 방법을 찾을 수 없습니다. 프로덕션을 위해 패키징하기 전에 내 프로그램이 제대로 작동 할 수 있도록 더미 큐를 만들 수 있습니까? 같은 EMS 메시징 인스턴스에서 생산 및 비 생산 트래픽을 혼합 권장되지 않습니다더미 TIBCO 테스트 용 큐

package GI; 

import javax.jms.JMSSecurityException; 
import javax.naming.InitialContext; 

import javax.jms.Queue; 
import javax.jms.TextMessage; 
import javax.jms.QueueSender; 
import javax.jms.DeliveryMode; 
import javax.jms.QueueSession; 
import javax.jms.QueueConnection; 
import javax.jms.QueueConnectionFactory; 
import javax.jms.QueueReceiver; 

public class Queue 
{ 
    public Queue() 
    { 
     System.err.println("\n------------------------------------------------------------------------"); 
     System.err.println("tibjmsTEQueue SAMPLE"); 
     System.err.println("------------------------------------------------------------------------"); 
    } 

    public String QueueProcess(String XMLRequest, String serverUrl, String userName, String password, String InQueueName) 
    { 
     String [] args = new String[4]; 

     args[0]=serverUrl; 
     args[1]=userName; 
     args[2]=password; 
     args[3]=InQueueName; 

     System.out.println("Server....................... "+serverUrl); 
     System.out.println("User......................... "+userName); 
     System.out.println("InQueue...................... "+InQueueName); 
     System.out.println("------------------------------------------------------------------------\n"); 

     try 
     { 
      tibjmsUtilities.initSSLParams(serverUrl,args); 
     } 
     catch (JMSSecurityException e) 
     { 
      System.err.println("JMSSecurityException: "+e.getMessage()+", provider="+e.getErrorCode()); 
      e.printStackTrace(); 
      System.exit(0); 
     } 

     System.err.println("Starting"); 

     QueueConnection connectionIn = null; 
     try 
     { 
      InitialContext context = new InitialContext(); 

      Queue tibcoQueue = (Queue) context.lookup("queue/queue0"); 

      QueueConnectionFactory factory = new com.tibco.tibjms.TibjmsQueueConnectionFactory(serverUrl); 
      connectionIn = factory.createQueueConnection(userName, password); 
      QueueSession sessionIn = connectionIn.createQueueSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE); 

      QueueSender queueSender = sessionIn.createSender(tibcoQueue); 
      queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT); 

      QueueReceiver queueReceiver = sessionIn.createReceiver(tibcoQueue); 

      connectionIn.start(); 

      System.out.println("Connected to Queue..."); 
      System.out.println("XMLRequest: " + XMLRequest); 

      TextMessage sendXMLRequest = sessionIn.createTextMessage(XMLRequest); 

      queueSender.send(sendXMLRequest); 

      System.out.println("sent: " + sendXMLRequest.getText()); 

      TextMessage XMLResponse = (TextMessage) queueReceiver.receive(); 

      System.out.println("received: " + XMLResponse.getText()); 
      return((String) XMLResponse.getText()); 
     } 
     catch(Exception e) 
     { 
      System.err.println("Exitting with Error"); 
      e.printStackTrace(); 
      System.exit(0); 
     } 
     finally 
     { 
      System.err.println("Exitting"); 
      try     {connectionIn.close();} 
      catch(Exception e1) {} 
     } 

     return("Failure"); 
    } 

    public static void main(String args[]) 
    { 
     Queue t = new Queue(); 
    } 
} 

답변

0

다음

내 코드는 .... 이것은 프로덕션 애플리케이션으로 실수로 비 프로덕션 트래픽을 보낼 가능성이 있으므로 매우 위험한 방법입니다. 나는 그들이 당신이 사용할 수있는 개발 EMS 인스턴스를 당신을 가리킬 수 있기 때문에 당신의 EMS 운영팀과 먼저 점검 할 것을 제안 할 것이다.

환경을 스트레스 테스트하지 않을 단위 및/또는 통합 테스트의 경우 많은 개발자가 로컬 개발 워크 스테이션에 EMS 인스턴스를 설치합니다. 다시 EMS 운영 팀은 로컬로 설치하기위한 라이센스 및 설치 바이너리를 제공 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 사실, 내가하고있는 일은 지금 당장 프로토 타입을 만드는 취미 프로젝트 일 뿐이며,이 코드를 테스트하려고했다. –