次のコードの場合
public class JMSSamplePut
{
private static String initialContextUrl = null;
private static String connectionFactoryFromJndi = "UM_QMGR_QCF";
private static String queueFromJndi = "BCUFXW.EXB.ATHENA.FX.IN";
private static String outString = "A sample text message " +
"from JMSSampleput";
private static int retryInterval = 10;
private static int retryCount = 3;
private static int connStatus = 1;
/**
* @param args
*/
public static void main( String[] args )
{
// Variables
Queue ioQueue = null;
QueueSession session = null;
QueueSender queueSender = null;
QueueConnection connection = null;
QueueConnectionFactory factory = null;
boolean transacted = false;
int i = 0;
try {
// Instantiate the initial context for JNDI
String contextFactory ="com.sun.jndi.fscontext.RefFSContextFactory";
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
environment.put(Context.PROVIDER_URL, "file:/c:/jndi");
Context context = new InitialDirContext(environment);
System.out.println("Initial context found!");
// Create a Queue ConnectionFactory
factory = (QueueConnectionFactory) context.lookup(connectionFactoryFromJndi);
...........
最後の行は失敗しています
キャッチされたJMSException:com.ibm.msg.client.jms.DetailedJMSSecurityException:JMSWMQ2013:接続モード'Client'およびホスト名'NATMIB1.hostname.net(1414)'のQueueManager''に提供されたセキュリティー認証が無効でした。リンクされた例外に接続しているQueueManagerで、指定されたユーザー名とパスワードが正しいかどうかを確認してください。com.ibm.mq.MQException:JMSCMQ0001:WebSphere MQ呼び出しがcompcode「2」(「MQCC_FAILED」)理由「2035」( ' MQRC_NOT_AUTHORIZED')。終了した
JVM引数
-Djavax.net.ssl.keystore=c://keystore//a_dev.jks \
-Djavax.net.ssl.keyStorePassword=******** \
-Djavax.net.ssl.trustStorePassword=******** \
-Djavax.net.ssl.trustStore=c://keystore//cacerts.jks \
-Djavax.net.debug=all
ポインタはありますか?次の行はなぜですか?
接続モードが「クライアント」でホスト名が「NATMIB1.hostname.net(1414)」のQueueManager''に提供されたセキュリティ認証が無効でした
JNDIエージェントがQueueManagerの名前を見つけることができないように見えますか?.bindingsファイルに次の行があり、キューマネージャー名はNATMIB1です。
UM_QMGR_QCF/RefAddr/3/Content=NATMIB1.xyz.net
前もって感謝します
スンダール