diff --git a/examples/consume-messages/.github/README.md b/examples/consume-messages/.github/README.md new file mode 120000 index 0000000..b2c3ba1 --- /dev/null +++ b/examples/consume-messages/.github/README.md @@ -0,0 +1 @@ +../Consume Messages.md \ No newline at end of file diff --git a/examples/consume-messages/Ballerina.toml b/examples/consume-messages/Ballerina.toml new file mode 100644 index 0000000..d0a28d1 --- /dev/null +++ b/examples/consume-messages/Ballerina.toml @@ -0,0 +1,5 @@ +[package] +org = "wso2" +name = "consume_messages" +version = "0.1.0" +distribution = "2201.8.4" diff --git a/examples/consume-messages/Config.toml b/examples/consume-messages/Config.toml new file mode 100644 index 0000000..aa26aaf --- /dev/null +++ b/examples/consume-messages/Config.toml @@ -0,0 +1,7 @@ +queueManagerName = "QM1" +host = "localhost" +port = 1414 +channel = "DEV.APP.SVRCONN" +userID = "app" +password = "password" +queueName = "DEV.QUEUE.1" diff --git a/examples/consume-messages/Consume Messages.md b/examples/consume-messages/Consume Messages.md new file mode 100644 index 0000000..2cf0c7b --- /dev/null +++ b/examples/consume-messages/Consume Messages.md @@ -0,0 +1,31 @@ +# Consume messages + +This example demonstrates how to consume messages from an IBM MQ queue. + +## Prerequisites + +### 1. Setup IBM MQ server + +Refer to the [Setup Guide](https://dev-central.ballerina.io/ballerinax/ibm.ibmmq/latest#setup-guide) to set up the IBM MQ server locally. + +### 2. Configuration + +Update IBM MQ related configurations in `Config.toml` in the example directory: + +```toml +queueManagerName = "" +host = "" +port = +channel = "" +userID = "" +password = "" +queueName = "" +``` + +## Run the Example + +Execute the following command to run the example: + +```bash +bal run +``` diff --git a/examples/consume-messages/main.bal b/examples/consume-messages/main.bal new file mode 100644 index 0000000..f625c17 --- /dev/null +++ b/examples/consume-messages/main.bal @@ -0,0 +1,44 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.org). +// +// WSO2 LLC. licenses this file to you 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. + +import ballerinax/ibm.ibmmq; +import ballerina/io; + +configurable string queueManagerName = ?; +configurable string host = ?; +configurable int port = ?; +configurable string channel = ?; +configurable string userID = ?; +configurable string password = ?; +configurable string queueName = ?; + +public function main() returns error? { + ibmmq:QueueManager queueManager = check new ( + name = queueManagerName, + host = host, + channel = channel, + userID = userID, + password = password + ); + ibmmq:Queue queue = check queueManager.accessQueue(queueName, ibmmq:MQOO_INPUT_AS_Q_DEF); + ibmmq:Message? message = check queue->get(options = ibmmq:MQGMO_WAIT); + while true { + if message is () { + continue; + } + io:println(string:fromBytes(message.payload)); + } +}