Installation of ElliottService, NETcellent’s Web Services for Elliott

Installation of ElliottService, NETcellent’s Web Services for Elliott

Installation to New Server

1. Server Location: Decide if you are going to install the web services on the same machine running Elliott, or a separate server on your network. The machine must reside on your network.

2. Set Up Server: If your application server does not have IIS and .NET installed, you will need to set it up. Click Start -> All Programs -> Administrative Tools -> Server Manager. . In the Server Manager window, scroll down to Roles Summary, and then click Add Roles. The Add Roles Wizard will start. Select Web Server (IIS).  Add roles: Application Server (.net 4.5) and Web server IIS. Make sure the following options are installed under "Application Development":
  • .Net Extensibility 3.5
  • .Net Extensibility 4.7
  • ASP.NET 3.5
  • ASP.NET 4.7
  • ISAPI Extensions
  • ISAPI Filters
See sample screen below:


3. Install p.sql client: Install the p.sql client on the web services machine.

Make Sure PARC (Pervasive Auto ReConnect) is Disabled:  By default, this option is disabled.  If you need to double check this setting, use the Pervasive Control Center and Documentation application as follows:

On the database server machine, make sure the Enable Auto Reconnect  CheckBox under Communication Protocols under the Configure Local Engine link is not checked. On the IIS server machine(s), make sure the Enable Auto Reconnect  CheckBox under Communication Protocols under the Configure MicroKernel Router link is not checked.



4.      Installation Folder Location: On your web server, typically, you will put your Elliott web services in a sub-directory under \Inetpub\wwwroot such as ElliottService.  Download and extract the latest D:\web\ElliottService\Deploy-<yyyymmdd>.Zip file to this folder.

5.      Set Cobol85.cbr path: In the Bin folder of your web services installation (\Inetpub\wwwroot\ElliottService\Bin) modify the COBOL85.CBR using Notepad. Change @CBR_ENTRYFILE=NSIFH.INF to include full path of the bin directory (Example: @CBR_ENTRYFILE=C:\Inetpub\wwwroot\ElliottService\Bin\NSIFH.INF).

6.      Install COBOL Runtimes (if not already installed):
a.      For 32-bit servers: Download D:\WEB\ElliottService\COBOLRuntimesFor32BitOS.Zip and install both runtimes  using the default target directories.
b.      For 64-bit servers: Download D:\WEB\ElliottService\COBOLRuntimesFor64BitOS.Zip and install both runtimes using the default target directories.
c.      Do not restart your system – it is not necessary.

7.      Enable Elliott Web Services & Set Custom Programs: Enable web services and update Elliott configuration for any custom programs for the business logic in web services (default business logic works for most customers):
a.      Go to Utilities, Global Setup
b.      Go to Add-Ons, Activex/web services
c.      Go through each item on First menu and Second menu and set each object field #1 to Y. We recommend you set all web service to Y so they will be available if you decide to use them later.
d.      To use custom programs, change field 3 to specify the custom business logic program your company uses for each web services necessary.  You will need help from NETcellent for this.

8.      Configure IIS: You need to create an application in IIS for the web services to run under.
a.      Open IIS from the Administrator Tools and navigate to your Web Services folder under the Web Sites icon. If you choose the default \Inetpub\wwwroot\ElliottService it will be under the Default Web Site in IIS.


b.      Right click on the Web Services folder (ElliottService if you choose the default install options) and select “convert to application.”

c. In the Actions pane on the right side, select Basic Settings to find the application pool of your website. The default is DefaultAppPool.


d.      Open the Application Pools folder in IIS and right click on the Application Pool for your web services site. (the default is defaultAppPool) Select Advanced Settings.
e.      Set enable 32-bit applications to True
f.      Set Managed Pipeline mode to  Classic
g.      Select Recycling… from the Actions pane.
h.      Set Recycling Conditions to: Specific time(s): at midnight and when virtual & private memory reaches 1048576.
i.        Set the identity of the application pool as needed to access the required files. Continue reading the next steps for more information.
 
9.      Permissions: (Server Location – Elliott Machine) If you install the web services on the same machine as Elliott/P.Sql, then leave the IIS application pool as “Network Service.”
10.      Permissions: (Server Location –  Separate from Elliott Machine) If you choose to install the web services on a machine that is not running Elliott/P.Sql you will need to change the IIS application pool to a domain user. Assign this domain user permissions to the Elliott directory. Also assign this user to the Users Group.
11.      Network Service User - The Network Service account is a special, built-in account that is similar to an authenticated user account. The Network Service account has the same level of access to resources and objects as members of the Users group. This limited access helps safeguard your system if individual services or processes are compromised. Services that run as the Network Service account access network resources using the credentials of the computer account.
12.      Elliott Data Directory Permissions: Your P.SQL Btrieve security has two options. If you choose the Classic option your App Pool Identity will need read/write file system permissions to the Elliott directory. If you choose the Mixed option your App Pool Identity will only need traverse rights to see the directory and files.


13.      Log Folder Permissions: Elliott Web Services will create and write to log files for debugging purposes under the Web Services Log sub-directory (i.e., \Inetpub\wwwroot\ElliottServices\Log). By default, when you create a web application in IIS, the App pool running your web services will have the user indentify of “Network Service.” You need to give write permissions to the user “Network Service” to the Log folder.  Otherwise, Elliott Web Services will not be able to create log files.

14.      Create Event Log Keys: In order for the web services to be able to write to the event log you need to create the event log keys. Browse to RegisterEventSources.exe in your \bin folder (default path: \Inetpub\wwwroot\ElliottService\Bin\RegisterEventSources.exe) and right click on the exe to run as administrator.

15. Event Viewer Logging: Open the event viewer and select the ElliottService events. Right click to open the properties and select “Overwrite event as needed.” This will prevent errors from occurring when the event log is full. 


16.      Web.config settings: In the root of your Web Services folder (\Inetpub\wwwroot\ElliottService) open the web.config folder.

a.      Change <compilation defaultLanguage="vb" debug="false">

                                                  i.      When debug is set to true, asp.net request will not time out.  This is to allow you to debug with visual studio at your own pace without having to worry about the requests suddenly disappearing.  Of course in a production environment timeouts are crucial to avoid requests becoming stuck indefinitely, so this is the reason to make sure debug is set to false when the application is deployed into production.

                                                ii.      Generally speaking, the “debug” property is not there when you deploy.  But if you deploy by copying the file, you should double check to make sure you set the debug=”false.”

b.      Set the SMTP settings to use your mail server. Example:

<smtp deliveryMethod="Network">

      <network host="mailer.netcellent.com" port="25"

userName="[account@gmail.com]" password="[password]" />

</smtp>

 

c.      If you are not using the current version of p.sql (finding out what version is currently being developed for) you may need to modify and uncomment the following in the web config.  <emk: I need to know the PSQL ADO.Net DLL we distribute, which PSQL version does that stands for?  Does that match with token below? See version 3.5 on our web services folder, but below show 3.0? Are we hard coding our web services against PSQL 11 ADO.Net, that does not seems to be reasonable?  Verify with Jim>

<!-- HOW TO USE:

1) Uncomment the following assemblyBinding tag to redirect the runtime to load a specific version of the Pervasive.Data.SqlClient.dll

2) Change the newVersion value to the version number of Pervasive.Data.SqlClient installed on client machine

   

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

      <dependentAssembly>

        <assemblyIdentity name="Pervasive.Data.SqlClient" publicKeyToken="c84cd5c63851e072"/>

        <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="3.0.0.0"/>

      </dependentAssembly>

</assemblyBinding>

17.      Custom Configuration Settings: You need to review the settings in the \Config\Elliott.Custom.Config file. The default settings are in the \Config\Elliott.Default.Config file. If the settings are found in the Elliott.Custom.config they will take precedence over the Elliott.default.config. For all paths use UNC \\server\share or IP address for the directory paths.

a.      SiteURL - Specifies the web site url of the web services

b.      StoreWebSiteURL – (Y/N) Specifies whether the (caller) website url will be stored when creating order

c.      EnableTokenBaseSecurity - Specifies whether token based security is enabled, used if token needs to be passed when calling the web service. If token isn’t passed values will not be returned.

d.      ReplaceEliItmIQWithSqlWhenPossible - Specifies whether SQL will replace the usage of eliitmiq component when possible

e.      SQLErrorsBeforeClearingConnections - Specifies the number of PQSL Client exceptions before clearing the connection pool. The purpose is let web services recover by itself when for some reasons PSQL server become unavailable (i.e. services pack update, server rebott…etc.)

f.        <add key="DDFPath" value="\\ts2\COB\Share\eli74\ddf40"/>  - The DDF path is where Pervasive’s Database Definition Files are located.  If a file needs to be created, the COBOL file handler will read the DDF files to construct the definition of fields and keys for the file before it calls Pervasive to create the file.

g.      COBOLWindowsRTMinimum - FOR SHARING COBOL Windows runtimes

h.      COBOLWindowsRTMaximum - FOR SHARING COBOL Windows runtimes

i.        COBOLWindowsRTWaitSeconds - FOR SHARING COBOL Windows runtimes

j.        SQLClientType - Specifies the ADO.NET provider to use for relational data access. Acceptable values are:

 ODBC - ODBCConnectionString and ODBC.NET data provider will be used

 PSQL - PSQLConnectionString and PSQL ADO.NET manageddata provider will be used

k.      <add key="PSQLConnectionString" value="ServerDSN=ELI74TUTORIAL;Server=TS2;User ID=Master;Password=XXXXXX"/> -  Specifies the connection string to use for pervasive ado.net data provider

l.        <add key="ODBCConnectionString" value="DSN=ElliottData"/> - Specifies the connection string to use for odbc.net data provider

m.    <add key="Elipath" value="\\ts2\COB\Share\eli74\TUTORIAL"/> - Specifies the UNC path to elliott data directory

n.      <add key="ImageLinkPath" value="\\ts2\users\COB\Share\eli74\images"/> - Specifies the UNC path to elliott image directory

<!-- ORDER CONFIRMATION EMAIL SETTINGS -->

o.      OrderContactEmailConfirm  -Specifies whether confirmation email will be sent to order econtact upon order creation

p.      CustEmailConfirm - Specifies whether confirmation email will be sent to customer who placed upon order creation

q.      SendOrderAdminEmail -  Specifies whether confirmation email will be sent to order admin, defined in config, upon order creation

r.      UseEcontactForOrderAdminEmail - Specifies whether the from email address in Order Admin email will be taken from the Order eContact

s.      SendOrderSalesmanEmail - Specifies whether confirmation email would be sent to the salesman upon order creation

t.        SendOrderAdminEmailViaOrderSalesmanEmailCC - Specifies whether the Admin email will be sent as a CC on the Salesman email

u.      UseEcontactForOrderSalesmanEmail - Specifies whether the from email address in Order Salesman email will be taken from the Order eContact

v.&n



    • Related Articles

    • A Case to Diagnose Elliott SOAP Web Services Errors with Log Files

      'Release Date: 08/15/2024 Modified Date: 08/23/2024 Version: 8.5 & Up When a web developer calls Elliott SOAP web services, he/she should place a try catch block so if there is an error with the web services call, the error can be caught at the ...
    • ElliottService System.TypeInitializationException

      System.TypeInitializationException may occur in ElliottService if you log onto the server using the same user account configured to run Elliott Service. Symptoms You configured a user account to run the Elliott Service in IIS. You log onto the ...
    • Received Code 9999, 30000 or 30001 with Web Services Call

      Modified Date: 08/31/2022 Version: 8.0 & higher Q - I tried to use EliARACHService Web Services. What follows are the parameters I passed. Then I received error 9999. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ...
    • Elliott Web Service Requirements

      Release Date: 5/22/2017 Q - What are the requirements for running Elliott Web Service? A - Elliott Web Service is built on .NET and runs on Windows. It extends a vast amount of Elliott features to external applications. Some of these features may ...
    • Login SUPERVISOR to Update DDF Files After Elliott 8.6 Installation

      Release Date: 8/17/2022 Version: Elliott V8.6 and Higher Background Most of Elliott Business Software uses the PSQL transactional database engine (Btrieve) to perform its work. However, some new features of Elliott V8.6 use the PSQL relational ...