저는 WebSphere MQ의 새로운 기능입니다. 나는 IBM의 .NET 클래스 (IBM.WMQ)를 사용하여 요청 메시지를 보낸 다음 응답 메시지를 받는다. MQMessage 오브젝트에는 다양한 데이터 유형에 대한 여러 Writexxx 메소드가 있습니다. 요청 메시지에 다양한 데이터 요소를 써야합니다. 내 질문은 각 개별 데이터 요소에 대해 적절한 Write 메서드를 호출해야합니까, 아니면 StringBuilder를 사용하여 모든 것을 작성한 다음 MQMessage WriteString 메서드를 한 번 호출해야합니까?MQMessage에 쓰는 방법 : 여러 개의 Write 호출 또는 StringBuilder?
2
A
답변
2
쓰기 API는 더 명확한 코드를 작성하는 데 도움을주기위한 것이지만 WMQ API를 .Net으로 변환 한 사람은 바보입니다.
그들은 오버로드가있는 "쓰기"함수 대신 20 개의 서로 다른 API를 작성했습니다. 쓰기 호출에는 몇 가지 사용 가능한 오버로드가 있습니다.
그들은 MQC (MQ 상수)라고하는 수천 가지 옵션은 아니지만 100 개가있는 하나의 enum을 만들었습니다. 재미있게 놀아라. 그러나 WMQ에서 거래를 조심해야한다. 그 기능을 사용하는 데 드는 비용이 적기 때문이다.
API의 대부분이 크기면에서 부호있는 int의 제한을 가지며 write (byte [] 배열) 및 writestring (string s)만이 API에 조심스럽게 다가갔습니다.) 함수는 큰 메시지를받습니다. 또한 .net api는 .net의 구현에 따라 모든 문자열 UTF-16을 작성하여 영향을 미칩니다.
응답 해 주셔서 감사합니다 (이 자료를 사용하는 유일한 사람인지 궁금해하기 시작했습니다). 그래서 당신이 쓸 긴 메시지, 여러 "쓰기"메서드 호출, 또는 문자열을 작성하고 단일 WriteString 호출 할 경우 당신이 할 것이라고? 또는 바이트 배열을 쓰는 것이 더 낫습니까? –
메시지 내용에 따라 다릅니다. WMQ 성능은 큰 메시지에 영향을줍니다. 내가 말했듯이 스트링 대 바이트는 메시지가 큰 경우 영향을 줄 수있는 UTF-16의 .net 문자열의 영향을받습니다. Websphere MQ 성능이 포함 된 웹 사이트. http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg27007197 – Spence