It's been a busy year. I have been programming a custom Maximo application in Kotlin.
I have recently managed to get a local MAS up and running using mas-local. It's a series of scripts written by Alex Donatelli to bring up a local MAS Manage instance. It's perfect for development. It requires some hefty hardware though. I'm running a 12-core, 3.3 GHz machine with 64 GB of RAM (49 GB assigned to MAS) and SSD drives. The script did not work when I had HDD's; it would timeout during installation. I'm running with a Slim UDS.
The remainder of this blog will be specific to running this local MAS instance.
The OpenShift Console web site is pretty good. You can do a lot of things through it, but I'm not crazy about the terminal window. I find I get logged out quickly. What follows will be command-line focused, but it's not the only way to get the information. It is assumed you can run the oc command.
Getting List of Projects
$ oc projects You have access to the following projects and can switch between them with ' project <projectname>': * db2u mas-masdemo-manage ...
The list has many other entries in it, but the two of most interest to me are db2u and mas-masdemo-manage.
db2u is the project with the database pod in it.
mas-masdemo-manage is the project that has Maximo Manage in it.
Getting List of Running PODs
$ oc project mas-masdemo-manage Now using project "mas-masdemo-manage" on server "https://api.crc.testing:6443". $ oc get pods NAME READY STATUS RESTARTS AGE admin-build-config-2-build 0/1 Completed 0 23h all-build-config-1-build 0/1 Completed 0 22h ibm-mas-manage-operator-6fdc56c84f-w8p5r 2/2 Running 4 23h ibm-truststore-mgr-controller-manager-7d9f7845cd-x759v 1/1 Running 2 23h masdemo-entitymgr-appstatus-5fb844fbcd-bhdpp 1/1 Running 2 23h masdemo-entitymgr-bdi-5b455f6b4b-q5xpf 1/1 Running 2 23h masdemo-entitymgr-ws-78d9b46ddb-6blw5 1/1 Running 2 23h masdemo-groupsyncagent-c69574896-wvwp6 1/1 Running 3 (4h11m ago) 23h masdemo-maslocal-all-8568f8bccb-ncbpr 2/2 Running 2 4h36m masdemo-maslocal-manage-maxinst-7d98c96744-fj4cd 1/1 Running 2 22h masdemo-maslocal-truststore-worker-f7hlv 0/1 Completed 0 23h masdemo-monitoragent-6875cbb7c6-48p4w 1/1 Running 2 23h masdemo-usersyncagent-844744fc7f-lgs5k 1/1 Running 4 (4h9m ago) 23h $ oc project db2u Now using project "db2u" on server "https://api.crc.testing:6443". $ oc get pods NAME READY STATUS RESTARTS AGE c-db2mas-db2u-0 1/1 Running 2 24h c-db2mas-etcd-0 1/1 Running 57 24h c-db2mas-instdb-n29pb 0/1 Completed 0 24h c-db2mas-ldap-fff4bfdd8-jfwxz 1/1 Running 4 24h c-db2mas-restore-morph-k4mkx 0/1 Completed 0 24h
The Maximo SMP directory is in masdemo-maslocal-manage-maxinst-7d98c96744-fj4cd.
The running Maximo instance is in masdemo-maslocal-all-8568f8bccb-ncbpr.
The database is running in c-db2mas-db2u-0.
Connect with Remote Shell
oc rsh will connect to a running pod.
$ oc rsh masdemo-maslocal-manage-maxinst-7d98c96744-fj4cd sh-4.4$ cat /opt/IBM/SMP/maximo/applications/maximo/properties/maximo.properties mxe.name=MXServer mxe.db.url=jdbc:db2://c-db2mas-db2u-engn-svc.db2u.svc:50001/BLUDB:sslConnection=true;sslVersion=TLSv1.2; mxe.db.driver=com.ibm.db2.jcc.DB2Driver mxe.db.user=maximo mxe.db.password=maximo mxe.db.schemaowner=maximo ... sh-4.4$ exit
In this case, we are displaying the contents of the maximo.properties file. We are interested in the database name (BLUDB) and the database user and password properties.
Connect to the Database
To connect to the database, we will forward a local port to the database port running within OpenShift using the oc port-forward command.
$ oc project db2u Now using project "db2u" on server "https://api.crc.testing:6443". $ oc get pod c-db2mas-db2u-0 -o=jsonpath='{.spec.containers[0].ports}' [{"containerPort":50000,"name":"db2-server","protocol":"TCP"},{"containerPort":50001,"name":"db2-ssl-server","protocol":"TCP"},{"containerPort":50052,"name":"db2uapi","protocol":"TCP"}] $ oc port-forward c-db2mas-db2u-0 50000:50000 Forwarding from 127.0.0.1:50000 -> 50000 Forwarding from [::1]:50000 -> 50000
From here, use whatever database tool you like. I used dbeaver with these settings:
- host: localhost
- port: 50000
- database: bludb
- username: maximo
- password: maximo