# Enterprise Communication Interface (ECI)

## Connection Type "tcpip"

In Agile e6, the connection type "tcpip" can be used for the communication between Agile e6 and the following clients: Java Client, and MFC Client. Communication is also possible by starting a server process to communicate with ECI.
Client Configuration
### Java Client (Windows and Unix-Platforms) Configuration: To contact the Java Client via ECI, the ECI Server Plug-in must be loaded (Standard). This plug-in enables the connection between the ECI client or an integration with the Java Client. An ECI command can then be sent. This information is set in the configuration file "jacc.defaults". Settings in the configuration file can be replaced by the option "-D" on command line when starting the Java Client. ("-D EciServer.Port=<value> ). If the value for the the EciServer.Port=0, the Java Client identifies a free socket number. The standard parameters for the ECI Client are: Type of transport: 1 PC: localhost Resource: 4444 The port number and list of authorized and unauthorized computers can be modified in the section "ECI server plugin": EciServer.Port=4444 EciServer.allowHost.1=localhost EciServer.allowHost.2=another.good.host EciServer.denyHost.1=first.bad.host EciServer.denyHost.2=second.bad.host All computers named in the section "EciServer.allowHost." are allowed to establish a connection, whereas, all computers named in the section "EciServer.denyHost. " are rejected. If no entries exist for "allowHost" and "denyHost", the check procedure is not executed. Due to security reasons only contacts from "localhost" are accepted by default. The value for the ECI-TOPIC is read from the server and set automatically for the Java Client. By default, the ECI-TOPIC has the value ":t:1:h:localhost:r:4444". In the section "EciServer.Secure", each ECI-Client (or each integration) is configured to log-in with a successful call of the ECI function "eci_chk_pwd" either securely ("EciServer.Secure= true") or not (Default: "EciServer.Secure= false"). Example call of the ECI test program after starting the Java Clients: eci_test 1 localhost 4444
### MFC Client (Windows Platforms) Configuration: The "tcpip" transport type is also realized for the MFC Client. The structure of the ECI-TOPICs is the same as for the Unix-Client. HKEY_CURRENT_USER\Software\Pisa\profile\<your_application>>\Environment\DATAVIEW_CIPC 1:epclt_winsock 57:psc_dde (contains supported transport types) HKEY_CURRENT_USER\Software\Pisa\profile\<your_application>>\EciServer\allowHost.1 localhost (The section "EciServer" contains the list of computer with access. Default access has "localhost" only.) Important information for developers of connections: When starting a connection via a "dde_com" call, the integration must change to the "main windows event loop" before connecting to the ECI socket (necessary for the WinExec function). The following DLLs must be in the directory where the MFC Client executable is stored (%axalant_root%\bin\intel-ms-nt4.0): epshr.dll epshr_epbase.dll epclt_winsock.dll epclt_netsocket.dll epclt_netdata.dll Example Start via icon: ...\path\plm.cmd -f <environment-file> -p ECI-TOPIC:t:1:h:localhost:r:12349 or ...\path\dtv_cli.exe -f <environment-file> -p ECI-TOPIC:t:1:h:localhost:r:12349 Start of eci_test program: eci_test 1 localhost 12349
### Server Configuration: Agile e6 Server (Windows and Unix platform) Configuration: Communication with Agile e6 can also be started as a server process, access to the ECI Client (or Integration) is possible in the following way: Start Agile e6 process: axalant F:<environment_file> <plm_user> -t 1 -k <hostname> -r <resource> & Start ECI_test program: eci_test 1 <hostname> <resource> hostname = Computer name where Agile e6 process is running resource = socket port number Example: axalant F:c:\Agile_e6\init\myTestEnvironment.edb demoep -t 1 -k localhost -r 12349 eci_test 1 localhost 12349 Access to the Agile e6 process is controlled in the configuration file for the application ".edb" in the section "[IPC]" with the parameter "SecurityLevel" . Possible values are: unrestricted: access for anyone process: first IPC connection must authenticate connection: each IPC connection must authenticate [IPC] # Protocol = 1 # Node = localhost SecurityLevel=unrestricte