이 주제에서는 C 프로그래밍 언어로 WebSphere Message Broker의 사용자 정의 확장을 개발할 때 고려해야 할 문자열 핸들링 관련 문제를 다룹니다.
Java 프로그래밍 언어를 사용하여 사용자 정의 확장을 개발할 경우에는 표준 Java 문자열 핸들링 메소드를 사용할 수 있습니다.
WebSphere Message Broker 브로커가 동시에 모든 언어의 메시지를 핸들링할 수 있게 하기 위해 브로커 내의 텍스트 처리는 UCS-2 유니코드로 수행됩니다. UCS-2 유니코드 문자열은 문자 데이터를 전달하고 리턴하는 Java 및 C 언어 사용자 정의 확장 API 전반에서도 사용됩니다. 속성은 데이터 유형과 무관하게 XML 구성 메시지에서 문자열로 수신됩니다. 속성의 참 데이터 유형이 문자열이 아닌 경우, cniSetAttribute 기능은 속성 값을 저장하기 전에 필요한 확인 및 변환을 수행해야 합니다. 마찬가지로, 속성 값이 cniGetAttribute2로 검색될 경우에는 결과를 리턴하기 전에 UCS-2 유니코드 문자열로의 변환을 수행해야 합니다.
CciChar는 UCS-2 유니코드 표현으로 16비트 문자를 정의합니다. CciChar*는 CciChar 0으로 끝나는 문자의 문자열입니다. 기본적으로, CciChar은 wchar_t 유형으로 표현됩니다. 그러나 일부 플랫폼에는 일반적으로 4바이트 wchar_t 또는 EBCDIC 표현으로 인해 소스 코드에 UCS-2 상수를 표현하는 편리한 방법이 없습니다. 예를 들면, L"ABC"와 같은 소스 코드 상수는 Solaris에서 12바이트로 확장됩니다.
이러한 이유로, WebSphere Message Broker에서는 유틸리티 기능 cciMbsToUcs 및 cciUcsToMbs를 제공합니다. 사용자 정의 노드의 이식성을 보장하려면 이러한 기능을 사용하십시오(적절한 경우).