Example #1
0
 /// <summary>
 ///     初始化
 /// </summary>
 /// <param name="businessPort">KAE Agent启动时需要注册的业务通信端口</param>
 /// <param name="systemPort">KAE Agent启动时需要注册的系统管理通信端口</param>
 /// <param name="localIP">当前本机IP</param>
 public static void Initialize(ushort businessPort, ushort systemPort, string localIP = null)
 {
     _tracing.DebugInfo("#Initializing KAE internal system resource factory...");
     KAESystemInternalResource.Factory = new DefaultInternalResourceFactory();
     KAESystemInternalResource.Factory.Initialize();
     _tracing.DebugInfo("\t#Initializing network resources...");
     if (!KAEHostNetworkResourceManager.IsInitialized)
     {
         KAEHostNetworkResourceManager.MetadataNewTransaction += MetadataNewTransaction;
         KAEHostNetworkResourceManager.Initialize(businessPort, systemPort);
     }
 }
Example #2
0
        /// <summary>
        ///    初始化资源
        /// </summary>
        /// <param name="businessPort">KAE Agent启动时需要注册的业务通信端口</param>
        /// <param name="systemPort">KAE Agent启动时需要注册的系统管理通信端口</param>
        /// <param name="localIP">当前本机IP</param>
        public static void Initialize(ushort businessPort, ushort systemPort, string localIP = null)
        {
            if (IsInitialized)
            {
                return;
            }
            IsInitialized = true;
            if (string.IsNullOrEmpty(localIP))
            {
                localIP = NetworkHelper.GetCurrentMachineIP();
            }
            /*Openning TCP port for business requests.*/
            TcpUri uri = new TcpUri(string.Format("tcp://{0}:{1}", localIP, businessPort));
            IHostTransportChannel hostChannel = new TcpHostTransportChannel(businessPort);

            hostChannel.ChannelCreated += ChannelCreated;
            if (!hostChannel.Regist())
            {
                hostChannel.ChannelCreated -= ChannelCreated;
                throw new AllocResourceFailedException("#Sadly, We couldn't alloc current network resource. #Uri: " + uri);
            }
            hostChannel.Tag = new KAENetworkResource {
                NetworkUri = uri, Protocol = ProtocolTypes.Metadata
            };
            _resources.Add(ProtocolTypes.Metadata, new Tuple <IHostTransportChannel, Uri>(hostChannel, uri));
            _tracing.DebugInfo("\t\t#Initialized network resource.\t(P: {0},\tURL: {1})", ConsoleColor.Gray, ProtocolTypes.Metadata, uri);
            /*Openning TCP port for system management*/
            uri         = new TcpUri(string.Format("tcp://{0}:{1}", localIP, systemPort));
            hostChannel = new TcpHostTransportChannel(systemPort);
            hostChannel.ChannelCreated += ChannelCreated;
            if (!hostChannel.Regist())
            {
                hostChannel.ChannelCreated -= ChannelCreated;
                throw new AllocResourceFailedException("#Sadly, We couldn't alloc current network resource. #Uri: " + uri);
            }
            hostChannel.Tag = new KAENetworkResource {
                NetworkUri = uri, Protocol = ProtocolTypes.INTERNAL_SPECIAL_RESOURCE
            };
            _resources.Add(ProtocolTypes.INTERNAL_SPECIAL_RESOURCE, new Tuple <IHostTransportChannel, Uri>(hostChannel, uri));
            _tracing.DebugInfo("\t\t#Initialized network resource.\t(P: {0},\tURL: {1})", ConsoleColor.Gray, ProtocolTypes.INTERNAL_SPECIAL_RESOURCE, uri);
        }