-
Notifications
You must be signed in to change notification settings - Fork 0
/
connect.js
103 lines (87 loc) · 2.77 KB
/
connect.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
'use strict';
/*
Copyright (c) IBM Corporation 2017, 2018
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Contributors:
Mark Taylor - Initial Contribution
*/
/*
* This is an example of a Node.js program to connect as a client to an
* IBM MQ queue manager.
*
* The queue manager name and channel attributes such as CONNAME are hardcoded
* to demonstrate how to use them.
*
* This program also demonstrates how authentication can be achieved with
* a userid/password option
*/
// Import the MQ package
var mq = require('ibmmq');
var MQC = mq.MQC; // Want to refer to this export directly for simplicity
// The queue manager to be used.
var qMgr = "DWEAA00";
var hConn;
function formatErr(err) {
return "MQ call failed in " + err.message;
}
// When we're done, close queues and connections
function cleanup(hConn) {
}
function sleep(ms) {
return new Promise(resolve=>{
setTimeout(resolve,ms);
});
}
// The program starts here.
// Connect to the queue manager.
console.log("Sample AMQSCONN.JS start");
// Create default MQCNO structure
var cno = new mq.MQCNO();
// Add authentication via the MQCSP structure
var csp = new mq.MQCSP();
csp.UserId = "weausr1";
csp.Password = "";
// Make the MQCNO refer to the MQCSP
// This line allows use of the userid/password
cno.SecurityParms = csp;
// And use the MQCD to programatically connect as a client
// First force the client mode
cno.Options |= MQC.ClientConn;
// And then fill in relevant fields for the MQCD
var cd = new mq.MQCD();
cd.ConnectionName = "va10dlvihs308.wellpoint.com(57084)";
cd.ChannelName = "TO.DWEAA00.A";
// Make the MQCNO refer to the MQCD
cno.ClientConn = cd;
// MQ V9.1.2 allows setting of the application name explicitly
if (MQC.MQCNO_CURRENT_VERSION >= 7) {
cno.ApplName = "Node.js 9.1.2 ApplName";
}
// Now we can try to connect
mq.Connx(qMgr, cno, function(err,conn) {
console.log("test");
if (err) {
console.log("test_1");
console.log(formatErr(err));
} else {
console.log("MQCONN to %s successful ", qMgr);
// Sleep for a few seconds - bad in a real program but good for this one
sleep(3 *1000).then(() => {
mq.Disc(conn, function(err) {
if (err) {
console.log(formatErr(err));
} else {
console.log("MQDISC successful");
}
});
});
}
});