Windows에서 WebSphere MQ 7 용 API EXIT를 작성했습니다. "amqsput"또는 "amqsget"과 같은 간단한 메시지를 대기열에 넣거나 가져올 때 정보가 포함 된 일부 로그 파일을 얻었습니다 등 시간, 메시지 데이터, 큐 이름처럼Java를 기반으로 클라이언트 프로그램을 통해 메시지를 넣을 때 My WebSphere MQ (Windows에서) API Exit가 아무 것도 기록하지 못하는 이유는 무엇입니까?
내가 자바 writen 내 테스트 프로그램에 대한 기대,하지만 그건 내가 아래의 코드를 사용했을 때
MQMessage MSG = 새로운 MQMessage를();
msg.writeUTF ("Hello, World!");
MQPutMessageOptions pmo = new MQPutMessageOptions();
queue.put (msg, pmo);
빈 로그 파일이 있습니다. 그런 다음 아래 코드를 사용했습니다.
MQMessage msg = new MQMessage();
msg.writeString ("Hello, World!");
MQPutMessageOptions pmo = new MQPutMessageOptions();
queue.put (msg, pmo);
그런 다음 로그 파일에서 familar 데이터를 확인했습니다.
안녕하세요, 세계 :
나는 나는 "메시지 브라우저"에서 두 개의 메시지를보고, MQ 탐색기를 열어!
% 안녕하세요, 세계!
여기에서 완전히 분실되었습니다. "%"는 어디에서 왔습니까? 내 api exit가 인코딩 때문에 put 작업을 기록하지 않았습니까?
모든 조언을 부탁드립니다. 감사합니다.
감사합니다. 팍스, 내 실제 메시지 데이터 앞에 왜 "%"가 있는지 알아. 하지만 put 작업을 로그에 기록하지 않은 이유는 무엇입니까? 내 API EXIT는 put, get과 같은 작업을 기록하도록 설계되었습니다. 어떤 충고? 다시 한 번 감사드립니다! – allan
그걸로 확신 할 수는 없지만 하나의 _possibility를 주겠다 ._ 당신의 출구가 C (또는 널 종료 문자열을 사용하는 다른 언어)이고 출력이 ". % Hello"(여기서 "."는 널 바이트 임) 인 경우, , 그게 보이기 때문에 빈 문자열을 얻을 수 있습니다. ". %"는 2 바이트 길이 섹션입니다. 그것은 내 생각에 너무 추측 일 수 있습니다. 나는 아마도 당신이하는 _first_ 일과 마찬가지로 출구에서 뭔가 다른 일을 할 것이다. (파일을 생성/업데이트하는 것과 같다), 그래서 호출되는 것을 볼 수있다. – paxdiablo
나는 네가 옳을 수도 있다고 생각한다. 내 출구는 C 다. 왜 writeUTF가 존재 하는가? 이 메서드는 실제 메시지 앞에 추가 정보를 추가합니다. 클라이언트 프로그램이 writeString 대신에 writeUTF를 사용했다면 어떻게해야합니까? 그런데 메시지 탐색기에서 "% Hello"만 보았습니다. "때문입니다." 눈에 보이지 않는가? 감사합니다. – allan