示例#1
0
 public MQSPIOpenIn(NmqiEnvironment nmqiEnv, int version) : base(nmqiEnv)
 {
     base.TrConstructor("%Z% %W%  %I% %E% %U%", new object[] { nmqiEnv, version });
     this.spiOpenInHdr    = new SPIOPENINHDR();
     this.spiOpenInHdr.ID = rfpVB_ID_OPEN_IN;
     this.Version         = version;
     this.openOptions     = new SpiOpenOptions();
     this.mqod            = new MQObjectDescriptor();
 }
示例#2
0
        protected void Open(ref MQObjectDescriptor od)
        {
            uint method = 0x75;

            this.TrEntry(method, new object[] { od });
            int pCompCode = 0;
            int pReason   = 0;

            try
            {
                od.CopyCHARVIntoOD();
                if (base.qMgr.CommandLevel < 700)
                {
                    int openOptions = base.OpenOptions;
                    if (base.objectHandle == null)
                    {
                        base.objectHandle = MQQueueManager.nmqiEnv.NewPhobj();
                    }
                    base.qMgr.nmqiConnector.MQOPEN(base.qMgr.hConn, ref od, openOptions, base.objectHandle, out pCompCode, out pReason);
                    base.hObj = base.objectHandle.HOBJ;
                }
                else
                {
                    SpiOpenOptions options = new SpiOpenOptions();
                    options.Options = base.OpenOptions;
                    NmqiSP nmqiConnector = (NmqiSP)base.qMgr.nmqiConnector;
                    if (base.objectHandle == null)
                    {
                        base.objectHandle = MQQueueManager.nmqiEnv.NewPhobj();
                    }
                    nmqiConnector.SpiOpen(base.qMgr.hConn, ref od, ref options, base.objectHandle, out pCompCode, out pReason);
                    base.hObj = base.objectHandle.HOBJ;
                    if (pCompCode != 2)
                    {
                        this.propControl = options.PropertyControl;
                    }
                }
                if (pCompCode != 0)
                {
                    base.qMgr.CheckHConnHealth(pReason);
                    base.throwNewMQException(pCompCode, pReason);
                }
                base.isClosed = false;
            }
            catch (MQException exception)
            {
                pCompCode = exception.CompCode;
                pReason   = exception.Reason;
                throw exception;
            }
            finally
            {
                base.unsafe_compCode = pCompCode;
                base.unsafe_reason   = pReason;
                base.TrExit(method);
            }
        }