MakeQueryStr() static private method

static private MakeQueryStr ( string connName ) : string
connName string
return string
        private ConnectionGroup FindConnectionGroup(string connName, bool dontCreate)
        {
            string          str   = ConnectionGroup.MakeQueryStr(connName);
            ConnectionGroup group = this.m_ConnectionGroupList[str] as ConnectionGroup;

            if ((group == null) && !dontCreate)
            {
                group = new ConnectionGroup(this, connName);
                this.m_ConnectionGroupList[str] = group;
            }
            return(group);
        }
示例#2
0
        // methods

        /*++
         *
         *  FindConnectionGroup       -
         *
         *  Searches for the a Group object that actually holds the connections
         *    that we want to peak at.
         *
         *
         *  Input:
         *          request                 - Request that's being submitted.
         *          connName                - Connection Name if needed
         *
         *  Returns:
         *          ConnectionGroup
         *
         * --*/

        internal ConnectionGroup FindConnectionGroup(string connName)
        {
            string lookupStr = ConnectionGroup.MakeQueryStr(connName);

            GlobalLog.Print("ServicePoint#" + ValidationHelper.HashString(this) + "::FindConnectionGroup() lookupStr:[" + ValidationHelper.ToString(connName) + "]");

            ConnectionGroup entry = m_ConnectionGroupList[lookupStr] as ConnectionGroup;

            if (entry == null)
            {
                IPAddressInfo RemoteInfo    = GetCurrentIPAddressInfo();
                IPAddress     RemoteAddress = null;
                int           ConnLimit;

                if (RemoteInfo == null)
                {
                    GlobalLog.Print("ServicePoint#" + ValidationHelper.HashString(this) + "::FindConnectionGroup() RemoteAddress:[(null)] m_UserChangedLimit:" + m_UserChangedLimit.ToString() + " m_ConnectionLimit:" + m_ConnectionLimit.ToString());

                    //
                    // If we don't have any information about the remote IP address,
                    // limit ourself to one connection until the address is resolved.
                    //
                    ConnLimit = 1; // ServicePointManager.DefaultConnectionLimit;
                    //
                    // if this is a user given number, then
                    // make sure to propagte this value
                    //
                    if (m_UserChangedLimit)
                    {
                        ConnLimit = m_ConnectionLimit;
                    }
                }
                else
                {
                    RemoteAddress = RemoteInfo.Address;

                    if (!RemoteInfo.IsLoopback)
                    {
                        ConnLimit = m_ConnectionLimit;
                    }
                    else
                    {
                        ConnLimit = LoopbackConnectionLimit;
                    }

                    GlobalLog.Print("ServicePoint#" + ValidationHelper.HashString(this) + "::FindConnectionGroup() RemoteAddress:[" + RemoteAddress.ToString() + "] ConnLimit:" + ConnLimit.ToString() + " m_ConnectionLimit:" + m_ConnectionLimit.ToString());
                }

                GlobalLog.Print("ServicePoint#" + ValidationHelper.HashString(this) + "::FindConnectionGroup() creating ConnectionGroup ConnLimit:" + ConnLimit.ToString());

                entry = new ConnectionGroup(this,
                                            RemoteAddress,
                                            ConnLimit,
                                            connName);

                GlobalLog.Print("ServicePoint#" + ValidationHelper.HashString(this) + "::FindConnectionGroup() adding ConnectionGroup lookupStr:[" + lookupStr + "]");

                m_ConnectionGroupList[lookupStr] = entry;
            }
            else
            {
                GlobalLog.Print("ServicePoint#" + ValidationHelper.HashString(this) + "::FindConnectionGroup() using existing ConnectionGroup");
            }

            GlobalLog.Print("ServicePoint#" + ValidationHelper.HashString(this) + "::FindConnectionGroup() ConnectionGroup.ConnLimit:" + entry.ConnectionLimit.ToString());

            return(entry);
        }