This section contains information about AppBase Platform Installation and instructions how to perform maintenance and troubleshooting.
Understanding AppBase Installation
AppBase Platform installation topology
AppBase Software Folder Structure
AppBase Runtime Data Folder Structure
Push AppBase Configuration changes
Managing Apache ActiveMQ (Linux, External Installation)
Managing Redis (Linux, External Installation)
Troubleshooting AppBase Installation
Understanding AppBase Installation
Please refer to AppBase Deployment Roles explanation for full list of AppBase Deployment Roles.
There are two main AppBase Installation types:
1. Single VM AppBase Installation – all AppBase Deployment Roles (AppBase Web Applications, AppBase System Web Services, AppBase System Windows Services, AppBase Infrastructure Services, etc) are installed on the same VM. This strategy typically used for Development and NPE (Non Production Environments).
2. Clustered AppBase installation – main AppBase Deployment Roles (AppBase Web Applications, AppBase System Web Services, AppBase System Windows Services) are installed on every VM, AppBase Instrastructure Services are installed on shared VMs (Windows or Linux). This strategy typically used for Production and UAT environments.
Please refer to AppBase Installation Guide for information about AppBase installation.
AppBase Components
Table below provides information about AppBase components, their AppBase deployment roles, log files, etc
Component Name | Deployment Role | Deployed As | Deployed Name | Log File Name | Description |
---|---|---|---|---|---|
AppBase Desktop | AppBase Web Applications | IIS Web Application | /Ecx.Web | Ecx.Web.log | Main AppBase web application |
AppBase Document Viewer Web | AppBase Web Applications | IIS Web Application | /Viewer.Web | Viewer.Web.log | AppBase based document viewer (Web app) 1) |
AppBase WebDAV | AppBase Web Applications | IIS Web Application | /CMS.WebDAV | CMS.WebDAV.log | AppBase WebDAV application to edit files directly in MS Word, etc |
AppBase Document Viewers & Scan | AppBase Web Applications | IIS Virtual Folder (ClickOnce) | /DAS.Publish | N/A | AppBase Document Viewer & Scan App (Windows app) |
AppLibrary WebService | AppBase System Web Services | IIS Web Application | /AppLibrary.WebService | AppLibrary.WebService.log | Web Service to integrate with AppBase App Library |
Audit WebService | AppBase System Web Services | IIS Web Application | /Audit.WebService | Audit.WebService.log | Web Service for Audit |
Business Data (Rule) WebService | AppBase System Web Services | IIS Web Application | /BDS.WebService | BDS.WebService.log | Web Service for business rules processing |
CMS WebService | AppBase System Web Services | IIS Web Application | /CMS.WebService | CMS.WebService.log | Web Service for content management system (documents) |
Config WebService | AppBase System Web Services | IIS Web Application | /Config.WebService | Config.WebService.log | Web Service for AppBase system configuration |
Content WebService | AppBase System Web Services | IIS Web Application | /Content.WebService | Content.WebService.log | Web Service for manipulation with content (merge, extract, convert, etc) 1) |
Capture Endpoint Web Service | AppBase System Web Services | IIS Web Application | /CPT.WebService | CPT.WebService.log | Web Service for Capture Endpoint |
Distribution Web Service | AppBase System Web Services | IIS Web Application | /Distribution.WebService | Distribution.WebService.log | Web Service for sending information out (email, sms, etc) |
Full Text Search WebService | AppBase System Web Services | IIS Web Application | /FTE.WebService | FTE.WebService.log | Web Service for managing Full Text Search indexing |
Genesys WebService | AppBase System Web Services | IIS Web Application | /Genesys.WebService | Genesys.WebService.log.log | Web Service for integration with Genesys products |
Management WebService | AppBase System Web Services | IIS Web Application | /Management.WebService | Management.WebService.log.log | Web Service for internal AppBase operations |
Report WebService | AppBase System Web Services | IIS Web Application | /Report.WebService | Report.WebService.log | Web Service for reporting |
Security WebService | AppBase System Web Services | IIS Web Application | /Security.WebService | Security.WebService.log | Web Service for security (authentication, authorization, etc) |
TenantRegistry WebService | AppBase System Web Services | IIS Web Application | /TenantRegistry.WebService | TenantRegistry.WebService.log | Web service for tenant management |
WFS WebService | AppBase System Web Services | IIS Web Application | /WFS.WebService | WFS.WebService.log | Web service for Workflow |
Event Win Service | AppBase System Windows Services | Windows Service | ASF_Event.WinService_<port> *1) | Event.WinService.log | Windows Service to process background rules, events, scheduled tasks |
Tenant Registry Win Service | AppBase System Windows Services | Windows Service | AFS_Tenant.WinService_<port> | TenantRegistry.WinService.log | Windows Service to perform “configuration” tasks, e..g import solution, deployment, export solution, sync users from Active Directory |
Management Win Service | AppBase System Windows Services | Windows Service | ASF_Management.WinService_<port> | Management.WinService.log | Windows Service for internal AppBase operations |
UI Win Service | AppBase System Windows Services | Windows Service | ASF_UIServer.WinService_<port> | UIServer.WinService.log | Windows Service to manage packages for AppBase Web Apps |
Capture Win Service | AppBase Capture Services | Windows Service | ASF_Capture.WinService_<port> | Capture.WinService.log | Windows Service to capture inbound channels (incoming emails, folders, etc) |
Full Text Search Indexing Service | AppBase Full Text Search Services | Windows Service | ASF_FTS.WinService_<port> | FTS.WinService.log | Windows Service for Full Text Search indexing |
OCR Win Service | AppBase OCR Services | Windows Service | ASF_OCR.WinService_<port> | OCR.WinService.log | Windows Service for OCR processing |
Print Win Service | AppBase Print Services | Windows Service | ASF_Print.WinService_<port> | Print.WinService.log | Windows Service for printing, sending faxes, etc |
AppBase Report Viewer | AppBase Java Services | Windows Service | Tomcat_<port> 3) | Windows Service hosting Tomcat with Report Viewer app | |
Apache ActiveMQ | AppBase Instrastructure Services | Windows Service | ActiveMQ_<port> 4) | ActiveMQ service (for Single VM installations) | |
Redis | AppBase Instrastructure Services | Windows Service | Redis_<port> 5) | Redis service (for Single VM installation) |
1) Requires additional licenses, please refer to Document Imaging & OCR Licenses
2) Private Perimeter port, please refer to AppBase Platform Installation topology below
3) Tomcat Report Client port
4) ActiveMQ service port
5) Redis service port
AppBase Platform installation topology
On every VM, we install two instances of AppBase Platform with different Deployment Roles:
1. Public Perimeter – AppBase Web Application and AppBase System Web Services Deployment Roles, exposed for end-user. For Clustered AppBase Installations, Public Perimeter typically placed behind Load Balancer to distribute the load. SSL can be handled either on Public Perimeter (LB passed 443 traffic) or on LB (LB offloads SSL and pass decrypted traffic to Public Perimeter)
2. Private Perimeter – AppBase System Windows Services and AppBase System Web Services (required to serve AppBase System Windows Services), AppBase Java Services, AppBase Capture Windows Services, AppBase Print Windows Services, AppBase OCR Windows Services, AppBase Full Text Search Windows Services. For Single VM Installation Type, this perimeter will also include AppBase Infrastructure Components (ActiveMQ, Redis). Private Perimeter is only required to process background tasks and should never be exposed to end-user.
Name | Deployment Roles | IIS Web Site | IIS Web Site Binding | Folder Name |
---|---|---|---|---|
Public Perimeter | AppBase Web Applications AppBase System Web Services | AppBase.i01 | 443 and SSL certificate or 80 (SSL offloaded on LB) | i01.<server node>.appbase |
Private Perimeter | AppBase System Web Services AppBase Java Services, AppBase Capture Windows Services AppBase Print Windows Services AppBase OCR Windows Services AppBase FTS Windows Services | AppBase.i02 | 9091 | i02.<server node>.appbase 6) |
6) server node – AppBase server node name, e.g. srv01, srv02, etc
AppBase Software Folder Structure
Each AppBase installation will have following folder structure on every node (VM)
Folder Name | Description |
---|---|
AppBase | Root AppBase Installation Folder (AppBaseRootDirectory from checklist) |
Install | |
Configuration | |
<your installation name> | AppBase configuration folder, contains configuration files, substitutions, etc |
Scripts.2 | Contains AppBase installation scripts |
i01.<server node>.appbase | |
Data | Contains local AppBase configuration data |
WebServices | Contains AppBase Web Application, |
AppLibrary.WebService | AppBase Web Services deployment roles |
Audit.WebService | |
BDS.WebService | |
CMS.WebDAV | |
CMS.WebService | |
Content.WebService | |
CPT.WebService | |
DAS.Publish | |
Distribution.WebService | |
Ecx.Web | |
FTE.WebService | |
Genesys.WebService | |
Management.WebService | |
Report.WebService | |
Security.WebService | |
TenantRegistry.WebService | |
Viewer.Web | |
WFS.WebService | |
i02.<server node>.appbase | |
Data | Contains local AppBase configuration data |
Java | Contains AppBase Report Viewer Services, |
Tomcat | AppBase Infrastructure Services (for Single VM installation) |
ActiveMQ | |
WebServices | Contains AppBase Web Services deployment roles |
…. | |
WinServices | Contains AppBase Windows Services |
Capture.WinService | |
Event.WinService | |
Management.WinService | |
Tenant.WinService | |
UIServer.WinService | |
Logs | |
i01 | Contains logs for Public perimeter |
i02 | Contains logs for Private perimeter |
AppBase Runtime Data Folder Structure
Folder Name | Description |
---|---|
AppBaseData | Root AppBase Shared Folder (SharedDirectoriesRoot from Checklist) |
Data | |
Env | AppBase environments root folder |
<tenant_code> | |
<environment_name.tenant_code> | |
CMSRoot | CMS root folder |
CMSTemp | CMS temp folder |
Data | Environment Data Folder |
BDS | |
CompiledDir | Folder contains compiled c# rules |
Oper | AppBase runtime data root folder |
AuditBuffer | Audit buffer |
Cache | AppBase cache root folder |
AspxCache | Cache of UI pages |
Content | Cached resources (images, javascripts, etc) |
FileCache | Cached AppBase configuration |
MessageBus | Message bus |
SecurityToken | Persisted AppBase security tokens |
Uploader | Temporary folder for file uploader |
Capture | AppBase capture root folder |
Backup | Backups of inbound emails, files. Files in this directory are used to restore captured email items, files etc and restart the corresponding capture items. If any of files in this directory are deleted then it will be impossible to restart or recover such capture items. |
Processed | Copy of processes inbound emails, files, etc |
Temp | Temporary folders |
Capture | Temporary folder for capture channels |
Content | Temporary folder for content transformation service |
ContentWorkflow | Temporary folder for content transformation service |
Generic | |
ImageCache | Temporary folder for web viewer web |
Temporary folder for printing service | |
Solution | AppBase solution configuration root folder |
<tenant_code> | |
<solution_name> | |
Resources | Solution resources root folder |
ResourcesManifest | Solution resources manifest folder |
<solution_versions> | |
Ext | Folder contains solution dll extension |
ResourcesManifest | Solution Version resources manifest folder contains resources' meta information |
Resources | Solution Version resource root folder |
EmailTemplates | Folder contains solution "Email Templates" |
MailMerge | Folder contains solution "Mail Merge" templates in MS Word format |
StaticResources | AppBase static resources |
Tenant | AppBase tenant configuration root folder |
<tenant_code> | |
<user_access_subject_code> | User specific folders which contains user specific information(profile photo, user stamps) |
ResourcesManifest | |
Resources | |
Photos | |
Stamps | |
ResourcesManifest | Tenant Resources manifest folder contains resources' meta information |
Resources | Tenant resource root folder |
Certificates | Folder contains registered certificates |
CompanyLogo | Folder contains Company Logos |
Vault | Folder contains registered security vault keys |
Managing AppBase Services
Assumptions:
Commands below should be executed under account with Administrator privileges.
Commands below should be running on each node (VM) running AppBase.
Commands below are using relative path, make sure that you go to AppBase configuration folder first (refer to AppBase configuration folder in AppBase Software Folder Structure)
Stop AppBase Services
InstallerMain.bat -Command Server-Stop -ServerFile <SERVERS_CONFIG_FILE.xml> -Server <SERVER_NAME>
or
appbase-stop.bat
where SERVERS_CONFIG_FILE.xml – AppBase configuration file obtained
SERVER_NAME – AppBase server name
Clear AppBase Cache
AppBase must be stopped before clearing cache
InstallerMain.bat -Command Server-RemoveCache -ServerFile <SERVERS_CONFIG_FILE.xml> -Server <SERVER_NAME>
where SERVERS_CONFIG_FILE.xml – AppBase configuration file obtained
SERVER_NAME – AppBase server name
Start AppBase Services
InstallerMain.bat -Command Server-Start -ServerFile <SERVERS_CONFIG_FILE.xml> -Server <SERVER_NAME>
or
appbase-start.bat
where SERVERS_CONFIG_FILE.xml – AppBase configuration file obtained
SERVER_NAME – AppBase server name
Change AppBase Configuration
1. Update _all_substitutions_common.liquid file in AppBase configuration folder
2. InstallerMain.bat -Command Server-Configure -ServerFile <SERVERS_CONFIG_FILE.xml> -Server <SERVER_NAME>
or
appbase-configure.bat
where SERVERS_CONFIG_FILE.xml – AppBase configuration file obtained
SERVER_NAME – AppBase server name
Push AppBase Configuration changes
InstallerMain.bat -Command Server-UpdateConfigs -ServerFile <SERVERS_CONFIG_FILE.xml> -Server <SERVER_NAME>
or
appbase-configure.bat
where SERVERS_CONFIG_FILE.xml – AppBase configuration file obtained
SERVER_NAME – AppBase server name
Managing Apache ActiveMQ (Linux, External Installation)
Assumptions:
ActiveMQ is installed to /opt/activemq
ActiveMQ is installed as a daemon running under service account srv_AppBase
Apache ActiveMQ is configured to run as a daemon and will be automatically started when VM is booted up. If you need to perform maintenance, please perform following commands:
Stop Apache ActiveMQ
sudo service activemq stop
Start Apache ActiveMQ
sudo service activemq start
To view list of available queues and consumers, please open Apache ActiveMQ management console at:
http://xxx.xxx.xxx.xxx:8161/admin (u: admin, p: admin)
Log files are located at:
/opt/activemq/data/activemq.log
Managing Redis (Linux, External Installation)
Assumptions:
Redis is installed to /opt/redis
Redis is installed as a daemon running under service account srv_AppBase
Redis is configured to run as a daemon and will be automatically started when VM is booted up. If you need to perform maintenance, please perform following commands:
Stop Redis
sudo service redis stop
Start Redis
sudo service redis start
Log files are located at:
/opt/redis/data/redis.log
Managing AppBase Installation
In order to perform AppBase cold start, please follow steps below:
1. Start ActiveMQ (if ActiveMQ is configured as external service)
2. Start Redis (if Redis is configured as external service)
3. Start AppBase Components (on every node)
In order to perform AppBase full stop, please follow steps below:
1. Start AppBase Components (on every node)
2. Stop Redis (if Redis is configured as external service)
2. Stop ActiveMQ (if ActiveMQ is configured as external service)
Managing Oracle
Oracle Database Server can be installed on both Windows and Linux. In this article we will consider management of a database server on Linux.
Please connect to DB server via PuTTY
Note
Oracle has pretty complex environment variables, so ALL oracle related commands must be executed under "oracle" user.
In order to switch context, please use following command:
[root@oracle12 ~]# sudo su - oracle
In this case, env variables will be loaded automatically and you don't need to touch .env files at all or set export variables.
1. DB server OS status info
To obtain info about DB server OS status please run:
[oracle@oracle12 ~]$ top
detailed see https://www.booleanworld.com/guide-linux-top-command/
2. Restart entire DB server
To restart entire DB server run:
[oracle@oracle12 ~]$ sudo shutdown -r now
3. Using the TNSPING Utility to Test Connectivity from the Client
The TNSPING utility determines whether the listener for a service on an Oracle Net network can be reached successfully.
If you can connect successfully from a client to a server (or a server to another server) using the TNSPING utility, then it displays an estimate of the round trip time (in milliseconds) it takes to reach the Oracle Net service.
If it fails, then it displays a message describing the error that occurred. This enables you to see the network error that is occurring without the overhead of a database connection.
Use the following command to test connectivity:
tnsping net_service_name count
In the preceding command, the following arguments are used:
net_service_name must exist in
tnsnames.ora
file or the name service in use, such as NIS.count determines how many times the program attempts to reach the server. This argument is optional.
If the net service name specified is a database name, then TNSPING attempts to contact the corresponding listener. It does not actually determine whether the database is running. Use SQL*Plus to attempt a connection to the database.
Following is example of TNSPING
Detailed see in the https://docs.oracle.com/cd/E11882_01/network.112/e41945/connect.htm#NETAG383
4. Using Telnet to Test Port 1521 Functionality
You can run a simple troubleshooting test to make sure the Client can connect to the port. Just try to telnet to the port from the Client (AppBase VM).
To test the functionality of port 1521, use this command from the Client:
Telnet tserv 1521
where "tserv" is the host name of IP of your DB Server.
If telnet is successful, you simply receive the telnet screen and a cursor. On the Terminal Server, Terminal Server Administration will show a blue computer icon with no other information. The Telnet connection will also consume an idle session.
The DB Server should disconnect the connection after a few minutes. Or, you can disconnect using Telnet.
This test tells you that you can connect over the port.
5. Restarting an Oracle Database or Automatic Storage Management Instance
To restart an Oracle Database or Automatic Storage Management instance:
If required, run the following command to switch in the oracle user context:
[root@oracle12 ~]# sudo su - oracle
Run the following commands to run sqlplus and connect to DB instance:
[oracle@oracle12 ~]$ sqlplus / as sysdba
Run the following commands to start the instance:
SQL> STARTUP
After the instance starts, you can exit from SQL*Plus.
To know more about startup options see https://docs.oracle.com/cd/B19306_01/server.102/b14231/start.htm- Check lsnrctrl status like in 6.4. If required perform lsnrctrl start like in 6.3.
- Check tnslsnr status like in 6.5 if you have an issue with the previous item processing. If tnslsnr stopped please kill tnslsnr (6.6) and then start listener like in 6.3.
- Verify connectivity to Oracle instance from AppBase VM, using sqlplus or sql developer or at least telnet 1521 port like in 4.
6. Working with Oracle Net Listeners
6.1 Getting the List of Oracle Net Listeners
Run the following command to determine the listener name and Oracle home directory for the Oracle Net listener that you want to work:
[oracle@oracle12 ~]$ ps -ef | grep tnslsnr
In this sample output, LISTENER the names of the listener.
Note
In the listener's management commands below You must specify the listener name only if it is different from the default listener name, LISTENER
.
The listener name is mentioned in the listener.ora
file. To display the contents of this file, run the following command:
[oracle@oracle12 ~]$ more $ORACLE_HOME/network/admin/listener.ora
6.2 Stopping an Oracle Net Listener
To stop an Oracle Net listener:
Run the following command to stop default Oracle Net listener:
[oracle@oracle12 ~]$ lsnrctl stop
Optional
2. If required, set and check the
ORACLE_HOME
environment variable to specify the appropriate Oracle home directory for the listener that you want to stop (any you got in the item 6.1 ):[oracle@oracle12 ~]$ export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 [oracle@oracle12 ~]$ echo $ORACLE_HOME
3. Run the following command to stop any other Oracle Net listener:
[oracle@oracle12 ~]$ $ORACLE_HOME/bin/lsnrctl stop LISTENER
6.3 Restarting an Oracle Net Listener
To start an Oracle Net listener:
Run the following command to restart default Oracle Net listener:
[oracle@oracle12 ~]$ lsnrctl start
Optional
2. If required, set the
ORACLE_HOME
environment variable to specify the appropriate Oracle home directory for the listener that you want to start (any you got in the item 6.1):[oracle@oracle12 ~]$ export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 [oracle@oracle12 ~]$ echo $ORACLE_HOME
3. Run the following command to restart any other Oracle Net listener:
[oracle@oracle12 ~]$ $ORACLE_HOME/bin/lsnrctl start LISTENER
6.4 Checking an Oracle Net Listener status
To review status of an Oracle Net listener:
Run the following command to get status of default Oracle Net listener:
[oracle@oracle12 ~]$ lsnrctl status
Below sample shows stopped listener status
Optional
2. If required, set the
ORACLE_HOME
environment variable to specify the appropriate Oracle home directory for the listener that you want to get status (any you got in the item 6.1):[oracle@oracle12 ~]$ export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 [oracle@oracle12 ~]$ echo $ORACLE_HOME
3. Run the following command to get status of any other Oracle Net listener:
[oracle@oracle12 ~]$ $ORACLE_HOME/bin/lsnrctl status LISTENER
6.5 Checking an Oracle Net Listener process tnslsnr status
If you have an issue with listener management e.g. lsnrctl <command> hangs
so you need to review the status of an Oracle Net listener process tnslsnr. To get the process status run following command:
[oracle@oracle12 ~]$ ps -eo 'tty,pid,comm,state' | grep tnslsnr
If process tnslsnr is running you gets output like below
If process tnslsnr is stopped then you gets output like below
6.6 Killing an Oracle Net Listener process tnslsnr
If you have an issue with listener management e.g. lsnrctl <command> hangs and tnslsnr stopped (see 6.5) you need to kill tnslsnr to be able to start listener again.
To kill of an Oracle Net listener process tnslsnr run following command:
[oracle@oracle12 ~]$ kill -9 22738
then check tnslsnr status like in 6.5
For more information on managing listeners, see https://docs.oracle.com/cd/B28359_01/server.111/b32009/strt_stp.htm#UNXAR157
7. Stopping an Oracle Database or Automatic Storage Management Instance
To stop an Oracle Database or Automatic Storage Management instance:
If required, run the following command to switch in the oracle user context:
[root@oracle12 ~]# sudo su - oracle
Run the following commands to run sqlplus and connect to DB instance:
[oracle@oracle12 ~]$ sqlplus / as sysdba
Run the following command to shut down the instance:
SQL> SHUTDOWN NORMAL
After the instance shuts down, you can quit SQL*Plus.
To know more about shutdown options see https://docs.oracle.com/cd/B19306_01/server.102/b14231/start.htm
8. Troubleshooting Oracle start
1. When starting AppBase, the software might report Oracle "ORA-12541: TNS:no listener", "ORA-12505: TNS:listener does not currently know of SID given in connect descriptor" errors.
In this case please perform the following steps:
a) Start an Oracle DB server like in 5.
b) Check lsnrctrl status like in 6.4. If required perform lsnrctrl start like in 6.3.
c) Check tnslsnr status like in 6.5 if you have an issue with the previous item processing. If tnslsnr stopped please kill tnslsnr (6.6) and then start listener like in 6.3.
d) Verify connectivity to Oracle instance from AppBase VM, using sqlplus or sql developer.
Troubleshooting AppBase Installation
1. When executing Oracle queries, the software might report ORA-03113 error. Please refer to Configuring Oracle Listener for instruction how to fix this.