Sha256: ebe7a4d3dfcf2f1f69d0eba8ba86fdbd0384b60ad42d8b51e4e02aba2889cc53

Contents?: true

Size: 1.44 KB

Versions: 11

Compression:

Stored size: 1.44 KB

Contents

#
# Sample : put() : Put multiple Messages to a queue under the same group Id
#          Open the queue so that multiple puts can be performed
#          Ensure that all messages have the same group id
#          Allow MQ to create the unique group id and let it automatically
#          assign message sequence numbers for each message in the group
#
require 'rubygems'
require 'wmq'

# Put 5 messages in a single group onto the queue
total = 5

WMQ::QueueManager.connect(:q_mgr_name=>'REID') do |qmgr|
  qmgr.open_queue(:q_name=>'TEST.QUEUE', :mode=>:output) do |queue|
    message = WMQ::Message.new
    total.times do |count|
      message.data = "Hello:#{count}"

      # Set the message flag to indicate message is in a group
      # On the last message, set the last message flag
      message.descriptor[:msg_flags] = (count < total-1) ? WMQ::MQMF_MSG_IN_GROUP : WMQ::MQMF_LAST_MSG_IN_GROUP

      # new_id => true causes subsequent messages to have unique message and
      # correlation id's. Otherwise all messages will have the same message and
      # correlation id's since the same message object is being
      # re-used for all put calls.
      #
      # By setting the put :options => WMQ::MQPMO_LOGICAL_ORDER then MQ will supply a unique Group Id
      # and MQ will automatically set the message sequence number for us.
      queue.put(:message => message, :new_id => true, :options => WMQ::MQPMO_LOGICAL_ORDER)
      p message.descriptor
    end
  end
end

Version data entries

11 entries across 11 versions & 3 rubygems

Version Path
ferocia-rubywmq-2.0.7 examples/put_group_a.rb
ferocia-rubywmq-2.0.6 examples/put_group_a.rb
ferocia-rubywmq-2.0.4 examples/put_group_a.rb
ferocia-rubywmq-2.0.3 examples/put_group_a.rb
ferocia-rubywmq-2.0.2 examples/put_group_a.rb
ekaranto-rubywmq-2.0.2 examples/put_group_a.rb
rubywmq-2.0.2 examples/put_group_a.rb
rubywmq-2.0.1 examples/put_group_a.rb
ekaranto-rubywmq-2.0.0 examples/put_group_a.rb
rubywmq-2.0.0 examples/put_group_a.rb
rubywmq-2.0.0.pre3 examples/put_group_a.rb