GDPR Cookie Consent by Free Privacy Policy Generator
post thumb
Asset Control
by Matthias Hanitzsch-Moonlight/ on 01 Mar 2018

Installing a base Asset Control System - Part 1

This post is part one of a two-part series demonstrating the installation of a base Asset Control system on a Unix host.

Part one covers the installation of the AC Server 7.3.

And part 2 covers the installation of the following components:

  • Interface Engine Utils 1.0
  • Normalization 2.1 interface
  • Consolidation 2.1 interface
  • Price Consolidation 2.0
  • Bloomberg 3.1 interface

Let’s have a look at how to install the AC Server.

The Unix host

I used Vagrant to provision an environment running Ubuntu 16.04 (Xenial) and prepared it so that I have:

  • a Unix user called acdba
  • an Oracle 11.2 database
  • a database user acdba with sufficient permissions (create tables, procedures etc.)

As I start, the home directory of the acdba user is empty:

acdba@acdevbox:~$ pwd
/home/acdba
acdba@acdevbox:~$ ls
acdba@acdevbox:~$ 

The installation package for AC Server 7.3 has been downloaded from the AC Userweb and is available in the /vagrant directory (I use the Red Hat package for installing on an Ubuntu host). I have also requested and received a license.txt for this environment:

acdba@acdevbox:~$ cd /vagrant
acdba@acdevbox:/vagrant$ ls -l
-rw-r--r-- 1 ubuntu ubuntu 129881777 Mar  5 20:11 ac-server-7.3.24-redhat63_x86_64.tar.gz
-rw-r--r-- 1 ubuntu ubuntu      1844 Mar  5 20:11 license.txt

Extracting the installation package and running menu.sh

I need to choose a root directory for installing the AC Server and all subsequent components. This directory is referenced as $AC_SYSTEM throughout AC scripts and documentation. For this purpose, I choose /home/acdba/ac.

I create the root directory of our installation, copy the AC Server 7.3 package into it and extract it (the package itself can then be removed):

acdba@acdevbox:~$ mkdir ac
acdba@acdevbox:~$ cd ac
acdba@acdevbox:~/ac$ cp /vagrant/ac-server-7.3.24-redhat63_x86_64.tar.gz .
acdba@acdevbox:~/ac$ tar xzf ac-server-7.3.24-redhat63_x86_64.tar.gz
acdba@acdevbox:~/ac$ rm ac-server-7.3.24-redhat63_x86_64.tar.gz
acdba@acdevbox:~/ac$ ls
bin  files  formulas  include  install  interfaces  lib  man
acdba@acdevbox:~/ac$ 

The following steps will use the script $AC_SYSTEM/install/menu.sh to provide values for environment variables needed by AC, create an ac.ini, acenv.sh and other files, create DB objects etc.

To start, I execute menu.sh from within the install directory and am presented with the following options:

acdba@acdevbox:~/ac$ cd install/
acdba@acdevbox:~/ac/install$ ./menu.sh

-------------------------------------------------------------------

Installation of Asset Control

-------------------------------------------------------------------

      * Installation directory: /home/acdba/ac
      *
   1. Environment ...
   2. Files and permissions ...
   3. Asset Control interfaces ...
   4. RDBMS setup ...
   5. Manual actions ...
   6. Post installation tasks ...
   7. Replicator setup ...

Enter choice or press Enter to exit:

Setting environment variables

From the main menu above, I choose option 1 and via the following screen I set values such that I arrive at the setup shown here:


-------------------------------------------------------------------

Environment

-------------------------------------------------------------------

   1. Root directory               (AC_SYSTEM): /home/acdba/ac
   2. Data directory                 (AC_DATA): $AC_SYSTEM/data
   3. Server hostname              (AC_SERVER): acdevbox
   4. Query Server address    (AC_QRY_ADDRESS): 536870932
   5. Update Server address   (AC_UPD_ADDRESS): 536870931
   6. Transaction log directory    (AC_LOGDIR): $AC_DATA/log
   7. Working directory           (AC_WORKDIR): $AC_DATA/workdir
   8. Communications directory    (AC_COMMDIR): $AC_SYSTEM/comm
   9. Formulas directory          (AC_FORMDIR): $AC_SYSTEM/formulas
  10. Reports directory            (AC_REPDIR): $AC_SYSTEM/reports
  11. Backup directory             (AC_BACKUP): $AC_DATA/backup
  12. Kerberos principal       (AC_KERB_PRINC):
  13. Kerberos keytab file       (KRB5_KTNAME): $AC_SYSTEM/files/krb5.keytab
  14. Kerberos library path                   : /usr/lib/gss
  15. RDBMS type                    (AC_RDBMS): ORACLE
  16. ORACLE version (11/12)                  : 11
  17. ORACLE home                (ORACLE_HOME): /u01/app/oracle/product/11.2.0/xe
  18. ORACLE library path                     : $ORACLE_HOME/lib
  19. ORACLE net configuration     (TNS_ADMIN): $ORACLE_HOME/network/admin
  20. ORACLE service name        (AC_DATABASE): XE
  21. ORACLE locale                 (NLS_LANG): AMERICAN_AMERICA.AL32UTF8
  22. Encoding                                : ISO-8859-1
  23. ADO service # of synchronization slots  : 1024
  24. UC (FE lock) # of synchronization slots : 10240
  25. Awk command                     (AC_AWK): gawk
  26. Remote execution         (AC_REMOTE_CMD): sh
  27. Platform (Shredder)     (AC_RT_PLATFORM): Triarch
  28. Allow lowercase     (AC_ALLOW_LOWERCASE): 0
  29. QS Library preload      (QRY_LD_PRELOAD):
  30. US Library preload      (UPD_LD_PRELOAD):
  31. Generate ac.ini and acenv

Enter choice or press Enter to exit:

You will need to adjust the values depending on your system configuration.

Creating ac.ini and acenv.sh

From the screen shown above, I then choose option 31 to generate two important files:

  • $AC_SYSTEM/ac.ini
  • $AC_SYSTEM/bin/acenv.sh

The former will hold the start-up configuration of the AC system, the latter will contain the environment variables set in the preceding step.

Just pressing Enter will bring me back to the main menu. And selecting option 2 will present me with the following screen:

Files and permissions


-------------------------------------------------------------------

Files and permissions

-------------------------------------------------------------------

   1. Create directories
   2. Create auto-logon file for DBA
   3. Set default permissions
   4. Create ORACLE specific links

Enter choice or press Enter to exit:

I select options 1 through 4. Option 2 requires me to enter the DB password of acdba twice. This wil encrypt the password and store it in in $AC_SYSTEM/files/auto_logon/acdba.

Pressing Enter brings me back to the main menu. There, I choose option 4. RDBMS setup:

RDBMS setup


-------------------------------------------------------------------

RDBMS setup

-------------------------------------------------------------------

      * RDBMS type: ORACLE
      *
   1. Default permissions for object create: 952
   2. Number of partitions for attribute tables: 1
   3. Maximum string length: 255
   4. Index creation mask: 1
   5. Exclusively lock underlying ADO when attaching on N0/C0 level: 1
   6. Drop database objects
   7. Create required database objects
   8. Drop and (re)create stored procedures, views and triggers
   9. Enable triggers to synchronize lists.member_count
  10. Disable triggers to synchronize lists.member_count
  11. (Re)create case-(in)sensitive indexes

Enter choice or press Enter to exit:

From here, I select options 6 through 9, each time required to enter the DB password of acdba.

Warning! Be careful to watch out for any errors when running the above steps. You need to resolve them (most likely insufficient DB permissions of the acdba user) and then repeat these steps before continuing.

Once the above steps have been completed successfully, press Enter twice to quit running menu.sh

Amend .bashrc to source acenv.sh

Now, I amend ~/.bashrc to source acenv.sh as follows (just add this snippet to the end of the file, amend the path as needed):

if [ -f /home/acdba/ac/bin/acenv.sh ] ; then
  . /home/acdba/ac/bin/acenv.sh
fi

Log out and back in. Then check to see if $AC_SYSTEM is set:

acdba@acdevbox:~$ echo $AC_SYSTEM
/home/acdba/ac
acdba@acdevbox:~$ 

Copy in the license.txt file

I have already requested and received a license file for this env. If you do not have a license file yet, you can request one from the AC Helpdesk.

The license.txt file needs to be copied to $AC_SYSTEM/files:

acdba@acdevbox:~$ cp /vagrant/license.txt $AC_SYSTEM/files
acdba@acdevbox:~$ ls -l $AC_SYSTEM/files/license.txt
-rw-r--r-- 1 acdba acdba 1844 Mar  5 22:54 ac/files/license.txt
acdba@acdevbox:~$ 

Starting the AC Server

With a valid license file in place, I can now start the AC server for the first time:

acdba@acdevbox:~$ adstart2
+++INFO+++ 20180305_22:56:48 @(#)waitdb[7.3/$Revision: 45930 $]: Verifying server component build level
+++INFO+++ 20180305_22:56:48 @(#)waitdb[7.3/$Revision: 45930 $]: RDBMS XE is accepting connections and contains the correct component build level
+++INFO+++ 20180305_22:56:48 adstart2: Starting Query server DEFAULT on node acdevbox...
+++INFO+++ 20180305_22:56:48 adstart2: Starting Update server DEFAULT on node acdevbox...
+++INFO+++ 20180305_22:56:48 @(#)acmon[7.3/$Revision: 46530 $]: Still waiting for server process(es) to become active
+++INFO+++ 20180305_22:56:53 @(#)acmon[7.3/$Revision: 46530 $]: AC Query Server 536870932@acdevbox is alive
+++INFO+++ 20180305_22:56:53 @(#)acmon[7.3/$Revision: 46530 $]: AC Update Server 536870931@acdevbox is alive
+++INFO+++ 20180305_22:56:53 adstart2: Calling ac_auto_load to check for automatic datamodel updates
+++INFO+++ 20180305_22:56:53 ac_auto_load: Generating and comparing signatures for auto-load files...
+++INFO+++ 20180305_22:56:53 ac_auto_load: Documentation for auto001.acbl:
Update the logical datamodel with pseudo-attributes $NAME, $TEMPLATE and $TIMEZONE and a formula that allows fundmstr longname and default template details to be kept in sync with specific static attributes.
+++INFO+++ 20180305_22:56:53 ac_auto_load: Loading auto001.acbl...
+++INFO+++ 20180305_22:56:53 @(#)ac_bl[7.3/$Revision: 47831 $]: Number of delivered transactions: 1 (1 successful)
+++INFO+++ 20180305_22:56:53 ac_auto_load: Documentation for auto002.acbl:
Update the logical datamodel with a template, ADO and attributes that are used by Desktop 3.0 to store and retrieve user profiles.
+++INFO+++ 20180305_22:56:53 ac_auto_load: Loading auto002.acbl...
+++INFO+++ 20180305_22:56:54 @(#)ac_bl[7.3/$Revision: 47831 $]: Number of delivered transactions: 1 (1 successful)
+++INFO+++ 20180305_22:56:54 ac_auto_load: Documentation for auto003.acbl:
Add system user type
+++INFO+++ 20180305_22:56:54 ac_auto_load: Loading auto003.acbl...
+++INFO+++ 20180305_22:56:54 @(#)ac_bl[7.3/$Revision: 47831 $]: Number of delivered transactions: 1 (1 successful)
+++INFO+++ 20180305_22:56:54 ac_auto_load: Documentation for auto004.acbl:
Add show_license_expiry script
Add run_retrieve_ac_info script
+++INFO+++ 20180305_22:56:54 ac_auto_load: Loading auto004.acbl...
+++INFO+++ 20180305_22:56:54 @(#)ac_bl[7.3/$Revision: 47831 $]: Number of delivered transactions: 2 (2 successful)
+++INFO+++ 20180305_22:56:54 ac_auto_load: Documentation for auto005.acbl:
Add COMPOUND_INFO formula
+++INFO+++ 20180305_22:56:54 ac_auto_load: Loading auto005.acbl...
+++INFO+++ 20180305_22:56:54 @(#)ac_bl[7.3/$Revision: 47831 $]: Number of delivered transactions: 1 (1 successful)
+++INFO+++ 20180305_22:56:54 ac_auto_load: Succesfully loaded 5 file(s).
acdba@acdevbox:~$ 

I can verify that AC is running by checking the status of both the update and the query server (commands usti and qsti respectively).

Your should see thread information similar to the below:

acdba@acdevbox:~$ usti
Thread 0: Idle since 05/03/2018 22:56:53 [2 reqs served, longest: 1520290608.602518 secs ()]
Thread 1: Idle since 05/03/2018 22:56:48 [1 reqs served, longest: 1520290608.602652 secs ()]
Thread 2: Idle since 05/03/2018 22:56:53 [2 reqs served, longest: 1520290608.602659 secs ()]
Thread 3: Idle since 05/03/2018 22:56:53 [2 reqs served, longest: 1520290608.602664 secs ()]
Thread 4: Idle since 05/03/2018 22:56:53 [2 reqs served, longest: 1520290608.602669 secs ()]
Thread 5: Idle since 05/03/2018 22:56:53 [3 reqs served, longest: 1520290608.602674 secs ()]
Thread 6: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 1520290608.602679 secs ()]
Thread 7: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 1520290608.602684 secs ()]
Thread 8: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 1520290608.602689 secs ()]
Thread 9: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 1520290608.602694 secs ()]
Thread 10: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 1520290608.602699 secs ()]
Thread 11: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 1520290608.602704 secs ()]
Thread 12: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 1520290608.602709 secs ()]
Thread 13: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 1520290608.602715 secs ()]
Thread 14: Idle since 05/03/2018 22:56:48 [1 reqs served, longest: 1520290608.602720 secs ()]
Thread 15: Idle since 05/03/2018 22:56:48 [1 reqs served, longest: 1520290608.602725 secs ()]
Thread 16: Idle since 05/03/2018 22:56:59 [7 reqs served, longest: 0.022734 secs (AC_LOGON)]
load: 0%, request buf size: 1024, next in/out: 13/13, request logging: 0. Up since Mon Mar  5 22:56:48 2018
state: 2, logging ON
acdba@acdevbox:~$ qsti
Thread 0: Idle since 05/03/2018 22:56:54 [3 reqs served, longest: 0.037545 secs ()]
Thread 1: Idle since 05/03/2018 22:56:53 [1 reqs served, longest: 0.000035 secs (AC_QSALIVE_QRY)]
Thread 2: Idle since 05/03/2018 22:56:53 [1 reqs served, longest: 0.030611 secs ()]
Thread 3: Idle since 05/03/2018 22:56:53 [2 reqs served, longest: 0.032177 secs ()]
Thread 4: Idle since 05/03/2018 22:56:54 [2 reqs served, longest: 0.038693 secs ()]
Thread 5: Idle since 05/03/2018 22:56:54 [2 reqs served, longest: 0.033439 secs ()]
Thread 6: Idle since 05/03/2018 22:57:01 [7 reqs served, longest: 0.038570 secs (AC_LOGON)]
Thread 7: Idle since 05/03/2018 22:56:48 [0 reqs served, longest: 0.000000 secs ()]
Thread 8: Idle since 05/03/2018 22:56:48 [0 reqs served, longest: 0.000000 secs ()]
load: 0%, request buf size: 1024, next in/out: 7/7, request logging: 0. Up since Mon Mar  5 22:56:48 2018
run query buf size: 1024, next in/out: 0/0
acdba@acdevbox:~$ 

Completing the installation

Now that the AC server is running, I can perform the last part of the installation process: Preloading the AC system with some initial meta data.

For this, I run install/menu.sh again:

acdba@acdevbox:~$ cd $AC_SYSTEM/install
acdba@acdevbox:~/ac/install$ ./menu.sh

-------------------------------------------------------------------

Installation of Asset Control

-------------------------------------------------------------------

      * Installation directory: /home/acdba/ac
      *
   1. Environment ...
   2. Files and permissions ...
   3. Asset Control interfaces ...
   4. RDBMS setup ...
   5. Manual actions ...
   6. Post installation tasks ...
   7. Replicator setup ...

Enter choice or press Enter to exit:

I choose option 6 Post installation tasks from the main menu:


-------------------------------------------------------------------

Post installation tasks

-------------------------------------------------------------------

   1. Initial RDBMS population
   2. Register installed interfaces

Enter choice or press Enter to exit: 1

+++INFO+++ 20180305_23:06:39 @(#)ac_bl[7.3/$Revision: 47831 $]: Number of delivered transactions: 25 (25 successful)

Then I choose option 1 and should see a message just like above.

Congratulations! At this stage, AC Server 7.3 has been successfully installed!

Thank you for reading.

In the next article of this series, you can learn about installing a data vendor interface, normalization, consolidation and price consolidation.

Tags:
comments powered by Disqus