• python 使用 tibco ems


    emshelper.py

    #encoding=utf-8
    import jpype
    
    
    jvmpath=r"C:Program FilesJavajre1.8.0_161inserverjvm.dll"
    
    class EmsHelper(object):
        def __init__(self, server= "tcp://localhost:7222",user="admin",pwd=""):
            gemsjar = r"E:EDriversoftwareJAVAjarGems.jar;D:	ibcow5ems8.2lib	ibjms.jar;D:	ibcow5ems8.2lib	ibcrypt.jar;D:	ibcow5ems8.2libslf4j-api-1.4.2.jar;D:	ibcow5ems8.2libslf4j-simple-1.4.2.jar;D:	ibcow5ems8.2lib	ibjmsadmin.jar;D:	ibcow5ems8.2libjms-2.0.jar;D:	ibcow5ems8.2libjndi.jar" 
            #gemsjar = r"D:	ibcow5ems8.2libjms-2.0.jar;E:EDriversoftwareJAVAjar	ibjms.jar"
            jvmArg = "-Djava.class.path=.;%s" % gemsjar
            jpype.startJVM(jvmpath,jvmArg)
            self.TibjmsConnection = jpype.JClass('com.tibco.tibjms.TibjmsConnection')
            self.TibjmsConnectionFactory = jpype.JClass('com.tibco.tibjms.TibjmsConnectionFactory')
            
        def SendQueueMsg(self,qname="testq",msgstr=str({'id':1,'name':"tname"})):
            connfac = self.TibjmsConnectionFactory(server)
            conn=connfac.createConnection(user,pwd)
            session=conn.createSession(0,1)
            dest=session.createQueue(qname)
            msgProducer = session.createProducer(None)
            msg = session.createTextMessage()
            msg.setText(msgstr)
            msgProducer.send(dest, msg)
            conn.close()    
    
        def ShowQueueMsg(self,qname="testq",maxlen=5):
            connfac = self.TibjmsConnectionFactory(server)
            conn=connfac.createConnection(user,pwd)
            session=conn.createSession()
            queue = session.createQueue(qname)
            browser = session.createBrowser(queue)
            msgs = browser.getEnumeration()
            num = 0
            while(msgs.hasMoreElements()):
                num+=1
                message =msgs.nextElement()
                print message.getText()
                if(num>=maxlen):
                    break
            browser.close()
            conn.close()    
            
        def HandleOneQueueMsg(self,qname="testq"):
            connfac = self.TibjmsConnectionFactory(server)
            conn=connfac.createConnection(user,pwd)
            session=conn.createSession()
            queue = session.createQueue(qname)
            dest=session.createQueue(qname)
            msgConsumer = session.createConsumer(dest)
            conn.start()
            msg = msgConsumer.receive()
            msg.acknowledge()
            self.HandleMsg(msg.getText())
            conn.close()
            
        def HandleMsg(self,msgstr):
            print "message is : ",msgstr
            
    if __name__ == '__main__':
        server,user,pwd,qname,msgstr="tcp://localhost:7222","admin","","testq",str({'id':1,'name':"tname"})
        eh=EmsHelper(server,user,pwd)
        eh.HandleQueueMsg()
  • 相关阅读:
    二进制数组
    model模块
    Decorator [ˈdekəreɪtə(r)] 修饰器/装饰器 -- 装饰模式
    箭头函数
    async [ə'zɪŋk] 函数
    cocos2d-x 事件分发机制 ——触摸事件监听
    算法:高速排序
    [zlib]_[0基础]_[使用Zlib完整解压zip内容]
    设计模式之状态模式(State)摘录
    编写Web Serviceclient訪问www.webxml.com.cn提供的服务
  • 原文地址:https://www.cnblogs.com/sui84/p/8515799.html
Copyright © 2020-2023  润新知