Skip to content

Commit 5390285

Browse files
committed
Refresh topic and add help for SSL issues
1 parent 363d528 commit 5390285

22 files changed

+101
-60
lines changed

articles/connectors/connectors-create-api-mq.md

Lines changed: 101 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ author: ChristopherHouser
77
ms.author: chrishou
88
ms.reviewer: valthom, logicappspm
99
ms.topic: article
10-
ms.date: 06/19/2019
10+
ms.date: 02/28/2020
1111
tags: connectors
1212
---
1313

@@ -17,120 +17,161 @@ The IBM MQ connector sends and retrieves messages stored in an IBM MQ server on
1717

1818
The IBM MQ connector includes these actions but provides no triggers:
1919

20-
- Browse a single message without deleting the message from the IBM MQ server
21-
- Browse a batch of messages without deleting the messages from the IBM MQ server
22-
- Receive a single message and delete the message from the IBM MQ server
23-
- Receive a batch of messages and delete the messages from the IBM MQ server
24-
- Send a single message to the IBM MQ server
20+
- Browse a single message without deleting the message from the IBM MQ server.
21+
- Browse a batch of messages without deleting the messages from the IBM MQ server.
22+
- Receive a single message and delete the message from the IBM MQ server.
23+
- Receive a batch of messages and delete the messages from the IBM MQ server.
24+
- Send a single message to the IBM MQ server.
25+
26+
Here are the officially supported IBM WebSphere MQ versions:
27+
28+
* MQ 7.5
29+
* MQ 8.0
30+
* MQ 9.0
2531

2632
## Prerequisites
2733

28-
* If you're using an on-premises MQ server, [install the on-premises data gateway](../logic-apps/logic-apps-gateway-install.md) on a server within your network. The server where the on-premises data gateway is installed must also have .NET Framework 4.6 installed for the MQ connector to work. You must also create a resource in Azure for the on-premises data gateway. For more information, see [Set up the data gateway connection](../logic-apps/logic-apps-gateway-connection.md).
34+
* If you're using an on-premises MQ server, [install the on-premises data gateway](../logic-apps/logic-apps-gateway-install.md) on a server within your network. The server where the on-premises data gateway is installed must also have .NET Framework 4.6 installed for the MQ connector to work.
2935

30-
However, if your MQ server is publicly available or available within Azure, you don't have to use the data gateway.
36+
After you finish installing the gateway, you must also create a resource in Azure for the on-premises data gateway. For more information, see [Set up the data gateway connection](../logic-apps/logic-apps-gateway-connection.md).
3137

32-
* Officially supported IBM WebSphere MQ versions:
38+
If your MQ server is publicly available or available within Azure, you don't have to use the data gateway.
3339

34-
* MQ 7.5
35-
* MQ 8.0
36-
* MQ 9.0
40+
* The logic app where you want to add the MQ action. This logic app must use the same location as your on-premises data gateway connection and must already have a trigger that starts your workflow.
41+
42+
The MQ connector doesn't have any triggers, so you must add a trigger to your logic app first. For example, you can use the Recurrence trigger. If you're new to logic apps, try this [quickstart to create your first logic app](../logic-apps/quickstart-create-first-logic-app-workflow.md).
43+
44+
<a name="create-connection"></a>
45+
46+
## Create MQ connection
47+
48+
If you don't already have an MQ connection when you add an MQ action, you're prompted to create the connection, for example:
49+
50+
![Provide connection information](media/connectors-create-api-mq/connection-properties.png)
51+
52+
1. If you're connecting to an on-premises MQ server, select **Connect via on-premises data gateway**.
3753

38-
* The logic app where you want to add the MQ action. This logic app must use the same location as your on-premises data gateway connection and must already have a trigger that starts your workflow.
54+
1. Provide the connection information for your MQ server.
3955

40-
The MQ connector doesn't have any triggers, so you must add a trigger to your logic app first. For example, you can use the Recurrence trigger. If you're new to logic apps, try this [quickstart to create your first logic app](../logic-apps/quickstart-create-first-logic-app-workflow.md).
56+
* For **Server**, you can enter the MQ server name, or enter the IP address followed by a colon and the port number.
4157

42-
## Browse a single message
58+
* To use Secure Sockets Layer (SSL), select **Enable SSL?**.
4359

44-
1. In your logic app, under the trigger or another action, choose **New step**.
60+
The MQ connector supports only server authentication, not client authentication. This limitation means that the connector doesn't send certificates and only validates the server certificate. For more information, see [Connection and authentication problems](#connection-problems).
4561

46-
1. In the search box, type "mq", and select this action: **Browse message**
62+
1. In the **gateway** section, follow these steps:
4763

48-
![Browse message](media/connectors-create-api-mq/Browse_message.png)
64+
1. From the **Subscription** list, select the Azure subscription associated with your Azure gateway resource.
4965

50-
1. If you don't have an existing MQ connection, create the connection:
66+
1. From the **Connection Gateway** list, select the Azure gateway resource that you want to use.
5167

52-
1. In the action, select **Connect via on-premises data gateway**.
53-
54-
1. Enter the properties for your MQ server.
68+
1. When you're done, select **Create**.
5569

56-
For **Server**, you can enter the MQ server name, or enter the IP address followed by a colon and the port number.
57-
58-
1. Open the **gateway** list, which shows any previously configured gateway connections. Select your gateway.
59-
60-
1. When you're done, choose **Create**.
61-
62-
Your connection looks like this example:
70+
### Connection and authentication problems
6371

64-
![Connection Properties](media/connectors-create-api-mq/Connection_Properties.png)
72+
When your logic app tries connecting to your on-premises MQ server, you might get this error:
6573

66-
1. Set up the action's properties:
74+
`"MQ: Could not Connect the Queue Manager 'EBNGWT': The Server was expecting an SSL connection."`
6775

68-
* **Queue**: Specify a queue that's different from the connection.
76+
* If the certificate from the MQ server isn't from a trusted certificate authority, install a self-signed certificate in the **Trusted Root Certification Authorities** store on the local computer where the on-premises data gateway service is running.
6977

70-
* **MessageId**, **CorrelationId**, **GroupId**, and other properties: Browse for a message based on the different MQ message properties
78+
The Windows OS has two certificate stores, **Certificates - Current User** and **Certificates - Local Computer**. Make sure that you add the certificate to the **Certificates - Current User** store for the user account that's running the on-premises data gateway service.
7179

72-
* **IncludeInfo**: Specify **True** to include additional message information in the output. Or, specify **False** to not include additional message information in the output.
80+
To install the certificate, you can use Windows Certification Manager (certmgr.msc). On the local computer, from the start menu, find and select **Manage user certificates**.
7381

74-
* **Timeout**: Enter a value to determine how long to wait for a message to arrive in an empty queue. If nothing is entered, the first message in the queue is retrieved, and there is no time spent waiting for a message to appear.
82+
* The MQ server requires that you define the cipher specification to use with SSL. However, SsLStream in .NET doesn't permit you to specify the order for cipher specifications. To work around this limitation, you can change your MQ server configuration to match the first cipher specification in the suite that the connector sends in the SSL negotiation.
7583

76-
![Browse Message Properties](media/connectors-create-api-mq/Browse_message_Props.png)
84+
When you try the connection, the MQ server logs an event message that indicates the connection failed because the other end used the incorrect cipher specification. The event message contains the cipher specification that appears first in the list. Update the cipher specification in the channel configuration to match the cipher specification in the event message.
7785

78-
1. **Save** your changes, and then **Run** your logic app.
86+
## Browse single message
7987

80-
![Save and run](media/connectors-create-api-mq/Save_Run.png)
88+
1. In your logic app, under the trigger or another action, select **New step**.
8189

82-
After the run finishes, the steps from the run are shown, and you can review the output.
90+
1. In the search box, enter `mq`, and select the **Browse message** action.
8391

84-
1. To review the details for each step, choose the green checkmark. To review more information about the output data, choose **Show raw outputs**.
92+
![Select "Browse message" action](media/connectors-create-api-mq/browse-message.png)
8593

86-
![Browse message output](media/connectors-create-api-mq/Browse_message_output.png)
94+
1. If you haven't already created an MQ connection, you're prompted to [create that connection](#create-connection).
95+
96+
1. After you create the connection, set up the **Browse message** action's properties:
97+
98+
| Property | Description |
99+
|----------|-------------|
100+
| **Queue** | If different from the queue specified in the connection, specify that queue. |
101+
| **MessageId**, **CorrelationId**, **GroupId**, and other properties | Browse for a message that's based on the different MQ message properties |
102+
| **IncludeInfo** | To include additional message information in the output, select **true**. To omit additional message information in the output, select **false**. |
103+
| **Timeout** | Enter a value to determine how long to wait for a message to arrive in an empty queue. If nothing is entered, the first message in the queue is retrieved, and there is no time spent waiting for a message to appear. |
104+
|||
105+
106+
For example:
107+
108+
![Properties for "Browse message" action](media/connectors-create-api-mq/browse-message-properties.png)
109+
110+
1. When you're done, on the designer toolbar, select **Save**. To test your app, select **Run**.
111+
112+
After the run finishes, the designer shows the workflow steps and their status so that you can review the output.
113+
114+
1. To view the details about each step, click the step's title bar. To review more information about a step's output, select **Show raw outputs**.
115+
116+
![Browse message output](media/connectors-create-api-mq/browse-message-output.png)
87117

88118
Here is some sample raw output:
89119

90-
![Browse message raw output](media/connectors-create-api-mq/Browse_message_raw_output.png)
120+
![Browse message raw output](media/connectors-create-api-mq/browse-message-raw-output.png)
91121

92-
1. If you set **IncludeInfo** to true, the following output is displayed:
122+
1. If you set **IncludeInfo** to **true**, additional output is shown:
93123

94-
![Browse message include info](media/connectors-create-api-mq/Browse_message_Include_Info.png)
124+
![Browse message include info](media/connectors-create-api-mq/browse-message-include-info.png)
95125

96126
## Browse multiple messages
97127

98-
The **Browse messages** action includes a **BatchSize** option to indicate how many messages should be returned from the queue. If **BatchSize** has no entry, all messages are returned. The returned output is an array of messages.
128+
The **Browse messages** action includes a **BatchSize** option to indicate how many messages to return from the queue. If **BatchSize** has no value, all messages are returned. The returned output is an array of messages.
129+
130+
1. Follow the previous steps, but add the **Browse messages** action instead.
131+
132+
1. If you haven't already created an MQ connection, you're prompted to [create that connection](#create-connection). Otherwise, by default, the first previously configured connection is used. To create a new connection, select **Change connection**. Or, select a different connection.
133+
134+
1. Provide the information for the action.
99135

100-
1. When you add the **Browse messages** action, the first previously configured connection is selected by default. To create a new connection, choose **Change connection**. Or, select a different connection.
136+
1. Save and run the logic app.
101137

102-
1. After the logic app run finishes, here is some sample output from the **Browse messages** action:
138+
After the logic app finishes running, here is some sample output from the **Browse messages** action:
103139

104-
![Browse messages output](media/connectors-create-api-mq/Browse_messages_output.png)
140+
![Sample "Browse messages" output](media/connectors-create-api-mq/browse-messages-output.png)
105141

106142
## Receive single message
107143

108-
The **Receive message** action has the same inputs and outputs as the **Browse message** action. When using **Receive message**, the message is deleted from the queue.
144+
The **Receive message** action has the same inputs and outputs as the **Browse message** action. When you use **Receive message**, the message is deleted from the queue.
109145

110146
## Receive multiple messages
111147

112-
The **Receive messages** action has the same inputs and outputs as the **Browse messages** action. When using **Receive messages**, the messages are deleted from the queue.
148+
The **Receive messages** action has the same inputs and outputs as the **Browse messages** action. When you use **Receive messages**, the messages are deleted from the queue.
113149

114-
If there are no messages in the queue when doing a browse or a receive, the step fails with this output:
115-
116-
![MQ No Message Error](media/connectors-create-api-mq/MQ_No_Msg_Error.png)
150+
> [!NOTE]
151+
> When running a browse or a receive action on a queue that doesn't have any messages,
152+
> the action fails with this output:
153+
>
154+
> ![MQ "no message" error](media/connectors-create-api-mq/mq-no-message-error.png)
117155
118156
## Send message
119157

120-
When you add the **Send messages** action, the first previously configured connection is selected by default. To create a new connection, choose **Change connection**. Or, select a different connection.
158+
1. Follow the previous steps, but add the **Send message** action instead.
159+
160+
1. If you haven't already created an MQ connection, you're prompted to [create that connection](#create-connection). Otherwise, by default, the first previously configured connection is used. To create a new connection, select **Change connection**. Or, select a different connection.
161+
162+
1. Provide the information for the action. For **MessageType**, select a valid message type: **Datagram**, **Reply**, or **Request**
121163

122-
1. Select a valid message type: **Datagram**, **Reply**, or **Request**
164+
![Properties for "Send message action"](media/connectors-create-api-mq/send-message-properties.png)
123165

124-
![Send Msg Props](media/connectors-create-api-mq/Send_Msg_Props.png)
166+
1. Save and run the logic app.
125167

126-
1. After the logic app finishes running, here is some sample output from the **Send message** action:
168+
After the logic app finishes running, here is some sample output from the **Send message** action:
127169

128-
![Send Msg Output](media/connectors-create-api-mq/Send_Msg_Output.png)
170+
![Sample "Send message" output](media/connectors-create-api-mq/send-message-output.png)
129171

130172
## Connector reference
131173

132-
For technical details about actions and limits, which are
133-
described by the connector's OpenAPI (formerly Swagger) description,
174+
For technical details about actions and limits, which are described by the connector's Swagger description,
134175
review the connector's [reference page](/connectors/mq/).
135176

136177
## Next steps
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)