Documentation of the MyTransaction tool used for example.test
.
The MyTransaction tool is used to test the longterm-transaction-feature of pymqmsgque.
To test this feature the client connect to the server and send two service-calls:
The service-call itself is quite simple:
Privat_Data_1 or Privat_Data_2
1111 or 2222
The GOAL for this test is:
import sys from pymkkernel import * from pymqmsgque import * def callback(ctx): ctx.ReadT_START() myPrivateHandle = ctx.ReadSTR() ctx.ReadT_END() myServiceResult = ctx.ReadI32() print(f"myPrivateHandle={myPrivateHandle}, myServiceResult={myServiceResult}") ctx = MqContextC() try: ctx.ConfigSetName("MyTransaction") # setup commandline arguments used for parsing args = MkBufferListC.CreateLA(sys.argv) # check if the '--token' option is available, default "SRVC" token = args.CheckOptionSTR("--token", "SRVC") # connect to the server ctx.LinkCreate(args) # register callback ctx.ServiceCreate("CLB1", callback) # send block using the LOW-Api ctx.SendSTART() ctx.SendT_START() ctx.SendSTR("Privat_Data_1") ctx.SendT_END() ctx.SendI32(11111) ctx.SendEND_AND_TRANSACTION(token, "CLB1") # send block using the HIGN-Api -> same as above, but shorter ctx.Send("T", "CLB1", f"{token}:(C)I", "Privat_Data_2", 22222) # now we wait for exact ONE result of the $ctx ctx.ProcessEvent(MqWaitOnEventE.OWN) except Exception as ex: ctx.ErrorCatch(ex); finally: ctx.Exit()