Пример #1
0
 private void DisconnectEventHandler(object sender, DisconnectEventArgs args)
 {
     try
     {
         CurrentConnection.Disconnect();
         //Global.Report.WriteAppLog(string.Format("ThreadId = {0} disconnected", args.ThreadId));
     }
     catch
     {
     }
 }
Пример #2
0
        private void ReceiveError(Exception e)
        {
            if (e is Hubble.Framework.Threading.MQAbortException)
            {
                if (_Args != null)
                {
                    _Pool.ExecuteFinished(this);

                    _Args.ReturnMsg = e;
                    CurrentConnection.Disconnect(_ManagedThreadId);
                    TcpServer.ReturnMessage(_Args);
                }
            }
        }
Пример #3
0
        object ReceiveMessage(int evt, MessageQueue.MessageFlag flag, object data)
        {
            if (evt == (int)SQLClient.ConnectEvent.ExcuteSql)
            {
                try
                {
                    _Args = data as MessageReceiveEventArgs;
                    CurrentConnection currentConnection = new CurrentConnection(
                        _Args.ConnectionInfo as ConnectionInformation);

                    CurrentConnection.ConnectionInfo.QueryThread = this;
                    _ManagedThreadId = this.ManagedThreadId;

                    if (!_Args.QueryStoreProcedure)
                    {
                        int queryQueueWaitingTimeout = Global.Setting.Config.QueryQueueWaitingTimeout;

                        if (queryQueueWaitingTimeout > 0)
                        {
                            TimeSpan timeSpan = DateTime.Now - _Args.StartTime;
                            if (timeSpan.TotalSeconds > queryQueueWaitingTimeout)
                            {
                                throw new Hubble.Core.Query.QueryException("Timeout during sql was waiting in Query Queue.");
                            }
                        }
                    }

                    HubbleTask.ExcuteSqlMessageProcess(_Args);

                    _Args = null;
                }
                catch (Exception e)
                {
                    _Args.ReturnMsg = e;
                    TcpServer.ReturnMessage(_Args);
                }
                finally
                {
                    _Pool.ExecuteFinished(this);
                    CurrentConnection.Disconnect();
                }
            }

            return(null);
        }