APPLTAG 아래의 IBM MQ v8.0 지식 센터 페이지 "DISPLAY CONN"에서 MQ가 값을 결정하는 방법을 보여줍니다. 당신은 당신의 클라이언트 응용 프로그램이 실행되는 OS 어떤 상태하지 않았다, Unix 및 Windows 용 정보는 다음과 같습니다
- UNIX 과정
주
HP-UX에 프로세스 이름은 14 개 문자를 초과하는 경우, 처음 14 문자 만 표시됩니다. 프로세스 이름이 28자를 초과하면 다른 모든 플랫폼에서 처음 28 자만 표시됩니다.
- Windows 프로세스
주
이 전체 프로그램 경로와 실행 파일 이름으로 구성되어 있습니다. 길이가 28자를 넘으면 마지막 28 자만 표시됩니다.
모든 상황을 설정하여이는 MQ 탐색기에 표시되는 "응용 프로그램 이름"에 영향을주지 않습니다, 각 메시지의 MQMD에 APPLNAME을 변경할 수 있습니다 @Attila Repasi에서 언급 한 바와 같이
.
한 작업의 주위에 당신이 유닉스에서 실행하는 경우를 생각 프로그램에 별도의 심볼릭 링크 이름이 다른 각을 만드는 것입니다. 그런 다음 서로 다른 심볼릭 링크 이름을 사용하여 각 사본을 실행하면 MQ Explorer가 표시하는 "응용 프로그램 이름"으로 반영됩니다.
심볼릭 링크가 필요없는 Linux에서 테스트 한 두 번째 해결 방법은 프로그램의 프로세스 이름 설정입니다. 나는 처음에 argv[0]
을 쓰려고 시도했지만,이 과정 이름을 ps
출력으로 변경하는 동안 MQ가 표시하는 APPLTAG
값이 변경되지 않았습니다. 리눅스에서 발견 한 작업 방법은 아래에 있습니다.이 작업은 MQCONN
이전에 호출해야합니다.
char *process_name = "samplename\0";
prctl(PR_SET_NAME,process_name,NULL,NULL,NULL);
는 @ "
How to name a thread in Linux? [duplicate]"에 Fusspawn의 대답은 위의 구문을 도왔다.
유닉스 운영체제 MQI 클라이언트에서 이것을 테스트하는 동안 리눅스와 솔라리스에서 프로세스 이름이 OS에 의해 15 문자로 제한된다는 것을 발견했습니다. AIX에서만 RAPPLTAG에서 전체 28자를 표시 할 수있었습니다. Windows MQI 클라이언트는 전체 28 자까지도 표시 할 수 있습니다. IBM Knowledge Center에서는 HP-UX가 14 자로 제한되어 있지만 다른 Unix 플랫폼에서는 28 자로 제한된다는 것을 나타냅니다. Linux 및 Solaris의 경우 15 자로 제한됩니다.
유용한 답변 :
Java API 용 IBM MQ 클래스 사용 지식 센터의 "DISPLAY CONN"페이지는 Java API 클라이언트 용 IBM MQ 클래스가 이 값. 이는 IBM MQ 지식 센터 페이지 "Setting up the IBM MQ environment for IBM MQ classes for Java"에서 아래에 표시됩니다. 응용 프로그램 이름을으로 설정하여 큐 관리자에 연결을 식별합니다. 이것은 v7.5 이후에만 사용 가능합니다.
응용 프로그램 이름은 28 자로 제한되며 긴 이름은 잘릴 수 있도록 잘립니다. 응용 프로그램 이름을 지정하지 않으면 기본값이 제공됩니다. 기본 이름은 호출하는 (기본) 클래스를 기반으로하지만,이 정보를 사용할 수없는 경우 Java 용 WebSphere MQ Client 텍스트가 사용됩니다.
...
MQQueueManager 생성자에 전달 된 속성 해시 테이블에서 응용 프로그램 이름을 설정하려면 MQConstants.APPNAME_PROPERTY 키를 사용하여 속성 해시 테이블에 이름을 추가하십시오. JMS의 API 클라이언트에 대한
IBM MQ 클래스는이 값을 설정할 수 있습니다. 이는 IBM MQ 지식 센터 페이지 "Properties of IBM MQ classes for JMS objects > APPLICATIONNAME"에 명시되어 있습니다. 이것은 v7.5 이후에만 사용 가능합니다.
적용 객체
ConnectionFactory에, QueueConnectionFactory와, TopicConnectionFactory와, XAConnectionFactory, XAQueueConnectionFactory, XATopicConnectionFactory
JMS 관리 도구 긴 이름 : APPLICATIONNAME
JMS 관리 도구 짧은 이름 : APPNAME
,515,
프로그래밍 액세스
세터/게터
- MQConnectionFactory.setAppName()
- MQConnectionFactory.getAppName()
값
인 임의의 유효한 문자열 더 이상 그쪽으로 n 28 자. 더 긴 이름 은 필요한 경우 주요 패키지 이름을 제거하여 적합하도록 조정됩니다. 예를 들어 호출하는 클래스가 com.example.MainApp 인 경우 전체 이름이 사용되지만 호출하는 클래스가 com.example.dictionaryAndThesaurus.multilingual.mainApp이면 multilingual.mainApp라는 이름이 사용됩니다. 유효한 길이에 맞는 클래스 이름과 가장 오른쪽 패키지 이름의 가장 긴 조합입니다.
클래스 이름 자체가 28자를 초과하면 이 잘리는 것입니다. 예를 들어, com.example.mainApplicationForSecondTestCase는 mainApplicationForSecondTest가됩니다.
클라이언트 응용 프로그램이 실행되는 OS는 언급하지 않았지만 프로그램에서 프로세스 이름을 설정하기 위해 Linux에서 다른 작업을 추가 했으므로 Windows 및 Solaris에 대한 몇 가지 유사한 대답을 찾았습니다. 다른 OS를 사용하는 경우에도 잘 작동 할 수 있습니다. – JoshMc