What are options in case I need to run 2 instances?
Use one VM instance at a time : This will eat up some time if I want to switch and quickly test my solution
Do development on Personal edition and Testing on VM : Pega should work uniform no matter where it was developed but VM instance has PostGRE presetup on it. If any of the solution requires access to DB, it might be problematic?
But it says we need licensed software for performing the steps listed in the article? So this will not work with Personal edition zip? Or am I reading this wrong?
If you are licensed to use any Pegasystems software as a Customer or Partner, the Pegasystems’ Sales or Partner Support Team associated with your organization must submit a software request on your behalf.
Licensed Pega customers or partners can download Pega distributions such as the just released 8.3GA version. The distribution contains a large jar file (1.9GB) containing every serialized rule in Pega, plus a a smaller jar file (1.9MB) containing serialized data.
pega8@Lubuntu1:~/Pega83/rules$ ls -l
-rw-r--r-- 1 pega8 pega8 1953626 Aug 5 20:22 PRPC_Data.jar
-rw-r--r-- 1 pega8 pega8 1939414073 Aug 5 20:23 PRPC_Rules.jar
As the link you provided explains, configure ../scripts/setupDatabase.properties to connect to an empty local Postgres database, prepped for Pega, running in a docker container.
With docker you can map the same internal container port number, say, 5432, to an external port number, say, 32770.
After everything loads, which takes approx 30 mins, create a baseline docker image from that container.
Then use the docker "run" command to create a second docker container from the baseline image you created, this time specifying port number 32772 say.
I misspoke about https://hub.docker.com/u/pegasystems. That is a Pega Infinity node (tomcat + cassandra + kafka). You need to pass docker run four JDBC environment variables to tell it how to connect to a database. Example below:
As stated, you only use "sudo docker run" once. Thereafter use "stop" and "start. The value after --name is the name you give to the container. At the end of the command you specify the docker image that the docker container is being spun up from.
For a database container there are other "run" arguments you would want to use:
--publish 32770:5432 (external DB port number to internal DB port number mapping)
-v $HOME/docker/volumes/postgres:/var/lib/postgresql/data (external directory to internal volume mapping)
If you were to execute: sudo docker exec -ti pega83db psql -h localhost -U pega -d pega
You would be running psql within the Postgres container. You could place a large CSV file in $HOME/docker/volumes/postgres. In psql you could say COPY <schema.table(columns)> FROM '/var/lib/postgresql/data/<large_file>.csv'. This would cause <large_file>.csv to be read from the VM directory that you mapped.