Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

About Primavera P6 Jobs, P6 Job Server and P6 Services.jar

About Primavera P6 Jobs, P6 Job Server and P6 Services.jar

In Primavera P6, many of the functionality requires time to complete, say more than 8 seconds. Oracle Primavera predefined these types of long-running functionality as a job which runs in the background. For example, copy and paste Projects. The time required to copy, and paste projects is depending on the number of projects, project size etc., so performing this task as a background job is an efficient method so the user doesn’t need to wait till the paste operation completes. Below I have mentioned some of the Primavera jobs 

  1. Schedule a project(‘s)
  2. Summarize a project or EPS
  3. Apply Actuals
  4. Export an XER file
  5. Import a Project from XML
  6. Export a Project to an XML
  7. Initiation Synchronization
  8. Copy Project
  9. Generate PM Report
  10. Store Period Performance
  11. Create Baseline for a Project
  12. Publish Project
  13. Send to Unifier

An example scenario how the P6 job works

Below I have explained an example scenario about how a Job created, processed and finished by Primavera P6

1. User Copy a Project in Primavera P6

2. A record inserted into the JOBSVC table with JOBTYPE = CopyProject and STATUS_CODE = PENDING

3. The Job Server in P6 web picks the record and start processing and update the STATUS_CODE = RUNNING

4. Meantime, user can perform other activities in P6 and see the status of the Job in VIEW SERVICE STATUS page 

5. The P6 Job Server in P6web updates the STATUS_CODE = COMPLETED/FAILED status once it done. The same status can be shown in the view service status. 

Where is the P6 Job Server available?

The P6 Job Server is available in all the below Job modules

1. P6.ear (P6 Web Application)

2. Primavera Integration.Ear (P6 Integration API Server)

3. intgserver.ear (P6 Integration API )

4. P6services.jar (P6 Job Server)

5. p6ws.ear (Primavera Web Services)

P6 Job Server Configuration

The primavera admin config lists all the P6 job services. We can see and tune each p6 jobs by opening  the P6 admin config > Expand the Configuration used by the p6 modules > Expand services >>Expand each job service and configure the setting

Here, I have expanded the Scheduler job and I can tune as below 

Interval => P6 scheduler wait for 10s second before running the next job

Concurrent Threads => 2 Java threads run at a time and each thread takes a scheduler record from JOBSVC table and process it. A value of 0 indicates that this service will not run on the server (A thread per Server core, suppose you have 4 cores than don’t crease the concurrent thread value more than 4)

Active Mode => Choose true if you want jobs processed continuously until all jobs finish. Choose false if you want each job processed according to the Interval.

Like the above, we can enable/disable, increase/decrease concurrent threads of the jobs on each application. For example, I could enable SUMMARIZER, LEVELLER& SCHEDULER on one JOB Server with the high concurrent job and disable others jobs. On a large scale P6 environment, it is necessary to have a dedicated JOB server to process these jobs.

For example, assume there are 200 concurrent users using P6. One is summarizing an EPS, and other is publishing an EPS. If the EPS consist of 1000 project then 1000 record for Summarizer, and 1000 for Publisher records created in the JOBSVC table. P6 web only takes care of these 2000 jobs, then it affects the performance and may get a chance of Job will fail. A dedicated P6 job server is highly recommended.

How to create and run a P6 job Server

  • Oracle recommends running the P6 Job Server on a dedicated server. The p6services.jar is a jar file that comes with the P6Home directory as shown below

  • Run the dbconfig and create a separate P6 configuration for P6Services so you can tune the Job configuration. 

  • Make sure the BreBootstrap.xml should point to the new configuration ‘P6 Services’

  • If you open the admin config, you will notice a separate configuration for P6services.jar like below 

  • Now create a batch file called startP6Service.bat or shell startP6Service.sh & append the following line in it. Place the bootstrap.home and p6services.jar path according to your environment 

java -Xms4096m -Xmx4096m -Dprimavera.bootstrap.home=C:\P6EPPM_16_2\p6 -XX:PermSize=128m -XX:MaxPermSize=256m -XX:NewSize=128m -XX:MaxNewSize=256m -XX:SurvivorRatio=8 -jar C:\P6EPPM_16_2\p6\p6services.jar

  • You can manually invoke the P6 Job server by double click on the batch file.  You will see the P6 Services Started Sucessfull message as shown below. This will read all the PENDING jobs in the JOBSVC table based on the JOb setting in admin config  

  • You can put this batch file in Windows Job Scheduler or Linux CRON job as a nightly job so the Job service will run every night at less loading time.


This post first appeared on Oracle ADF, BPM, BI And Primavera P6 Tutorials, please read the originial post: here

Share the post

About Primavera P6 Jobs, P6 Job Server and P6 Services.jar

×

Subscribe to Oracle Adf, Bpm, Bi And Primavera P6 Tutorials

Get updates delivered right to your inbox!

Thank you for your subscription

×