internal void StopListenerCore(WsListener wsListener) { RetryOnHCONNError(() => { var pcfMsg = _messageAgent.NewRequest(MQC.MQCMD_STOP_CHANNEL_LISTENER); pcfMsg.AddParameter(MQC.MQCACH_LISTENER_NAME, wsListener.Name); var pcfResponses = _messageAgent.Send(pcfMsg); }); }
internal IListener OpenListener(string name, bool autoLoadInfo = false) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } try { var l = new WsListener(this, name); if (autoLoadInfo) { l.RefreshInfo(); } return(l); } catch (MQException ibmEx) { throw ibmEx.ToMqException(AddExtraInfoToError); } }
internal void RefreshListenerInfosCore(WsListener wsListener) { wsListener.Ip = null; wsListener.Port = null; wsListener.Protocol = null; wsListener.Status = null; RetryOnHCONNError(() => { var pcfMsg = _messageAgent.NewRequest(MQC.MQCMD_INQUIRE_LISTENER); pcfMsg.AddParameter(MQC.MQCACH_LISTENER_NAME, wsListener.Name); var pcfResponses = _messageAgent.Send(pcfMsg); var protocol = pcfResponses[0].GetIntParameterValue(MQC.MQIACH_XMIT_PROTOCOL_TYPE); switch (protocol) { case MQC.MQXPT_TCP: wsListener.Protocol = "TCP"; break; case MQC.MQXPT_LU62: wsListener.Protocol = "LU62"; break; case MQC.MQXPT_NETBIOS: wsListener.Protocol = "NETBIOS"; break; case MQC.MQXPT_SPX: wsListener.Protocol = "SPX"; break; } if (protocol == MQC.MQXPT_TCP) { var ip = pcfResponses[0].GetStringParameterValue(MQC.MQCACH_IP_ADDRESS); wsListener.Ip = ip; var port = pcfResponses[0].GetIntParameterValue(MQC.MQIACH_PORT); if (port > 0) { wsListener.Port = port; } } var pcfMsg2 = _messageAgent.NewRequest(MQC.MQCMD_INQUIRE_LISTENER_STATUS); pcfMsg2.AddParameter(MQC.MQCACH_LISTENER_NAME, wsListener.Name); PCF.PcfMessage[] statusMsg; if (_messageAgent.TrySend(pcfMsg2, out statusMsg)) { var status = statusMsg[0].GetIntParameterValue(MQC.MQIACH_LISTENER_STATUS); switch (status) { case MQC.MQSVC_STATUS_STARTING: wsListener.Status = ListenerStatus.Starting; break; case MQC.MQSVC_STATUS_RUNNING: wsListener.Status = ListenerStatus.Running; break; case MQC.MQSVC_STATUS_STOPPING: wsListener.Status = ListenerStatus.Stopping; break; case MQC.MQSVC_STATUS_STOPPED: wsListener.Status = ListenerStatus.Stopped; break; case MQC.MQSVC_STATUS_RETRYING: wsListener.Status = ListenerStatus.Retrying; break; } } else { wsListener.Status = ListenerStatus.Stopped; } }); }