On the first part, we’ve seen how Integration Network WorkCenter makes the live much easier for those who are setting messaging (Gateway, nodes, domain). For each component, the WorkCenter marks as correct or not. It will most likely make it all right, and make avoid sometime pain to know what is missing.
Here after I’ll try to go a little bit further and go to the menu. Setting the messaging themselves.
The first part is rather obvious :
Be sure your environment is ready to be used (Configuration Status):
The Gateway menu goes to the standard Gateway page, Node Network to the node definition and Domain to the domain status. All keeping the left-frame.
1. Network Status
This is the home page of WorkCenter (but also from the Administration part). In case of multiple nodes, you are able to ping all at once and have all the error/success status at once as well.
2. Introspection
Probably one of the best part.
Going to the service/operation and check if deployment is required on local or remote node. I deliberately chose USER_PROFILE for the coming tests below :
Here, I have no remote node, so, go for the local node, and click on “continue” :
Run the introspection process :
If necessary, check the non-deployed operation, and run it :
This obviously can be done through the former Integration Broker menu, but here looks much easy, all on board.
And if you have a remote node, you can also check it (I have a FSCM91 database, created a remote node on a separate gateway).
You may have the following after running the introspection :
Well, could be more friendly message, isn’t it ? It could say which routing…
Fortunately, the target logfile says a little bit more :
PSAPPSRV.3756 (1) [11/28/12 14:29:28 VP1@JavaClient IntegrationSvc](3) Unable to find a Routing corresponding to the incoming request message.External Operation Name: GETNETWORKMETADATA.v1Requesting Node: PSFT_HROperation Type: syncUserId: PS
[psoft@orion6 LOGS]$
3. Service operation permission
Rather easy to understand, but again, instead of going to special menu, manage all from WorkCenter. From within the previous error message, here we go :
PS and VP1 (on both sides) have already this permission list granted through the new role I created earlier (see my previous article). So it should be something else. Let’s check the service operation and routing (unfortunately, it cannot be done from the WorkCenter).
Here we can see the inbound routing is not active, let’s activate (on both sides):
Save and quit, return to WorkCenter, and retry the introspection previously failed on remote node.
4. Introspection (bis) :
Going back to the WorkCenter introspection of USER_PROFILE onto the remote node :
And magically, here we can see all what is required on remote system to make it works :
That’s rather nice, the system is apparently able to do most of the tasks automatically whereas by the past it was to be done manually one by one, and most of the time we forgot one little thing which we can spend quite a lot of time on.
So, let’s follow the advices and do only the automatic steps. Here again, the message of the manual step is truncated.
Anyway, let’s apply the automatic steps :
All the automatic actions have not been applied, again for some, there’s a missing routing. From the logfile :
PSAPPSRV.3770 (3) [11/28/12 15:22:47 VP1@JavaClient IntegrationSvc](3) Unable to find a Routing corresponding to the incoming request message.External Operation Name: EXECUTEDEPLOYMENT.v1Requesting Node: PSFT_HROperation Type: syncUserId: PS
EXECUTEDEPLOYMENT, as for the activated previous routings, is from service IB_NETWORK. Instead of going in error one by one, check all at once and activate the corresponding routings on local/remote sides.
You should actually activate the routing of all the operations of the service IB_NETWORK to be able to work properly within WorkCenter.
Once all the routing have been activated, on both sides, rerun the introspection and deployment.
Finally, re-run the introspection after all automatic actions have been done :
Nothing else is required. Note here, that’s only for a one-way message, in my case HCM => FSCM. If you want HCM <=> you need to do it on both sides.
5. Network Monitor Setup
For setting the monitoring of messages’ page
The “IB Profile Status On” checkbox makes (or makes not) the statistics to be gathered.
6. Network Monitor
We will retrieve here the list of messages. For the need of this test case, previous step configured the service USER_PROFILE. So, let’s create a new user (a copy) and see what happens over here.
Coming back to the Network Monitor of WorkCenter, we can see all the local messages processed :
If we go to the details :
The message has been send to the remote node PSFT_EP.
It can be seen from the subscription contracts tab once the proper node is selected :
Rather nice, we don’t have to go on the remote system to check if the message has been applied.
7. Transactional tracker
More or less the same as the Monitor network, but dedicated to the remote(s) node(s).
And if a message has been sent to more than one node, we can see which ones in details.
In the end we can say that Integration Network WorkCenter is a great help for the administrator and a nice panel of all the commands and tests required to do all the networking/messaging configuration and checking. And that’s huge.
Note that it is planned to have several improvements on this part within the next Peopletools release (please read the Peopletools 8.53 RVP). Wait and see.
Nicolas.
Wednesday, November 28, 2012
Peopletools 8.52 Integration Network WorkCenter (Part 2/2)
Monday, November 26, 2012
Peopletools 8.52 Integration Network WorkCenter (Part 1/2)
It has always been rather complicated to manage all the different components to make it all work.
The Integration Network WorkCenter is supposed to make it easier. It is worth to try. And really, it is worth to use.
But first of all, the setting to get it requires some work before hands. Quite a long story… sorry.
On the page, for the first time, it will probably look like the following :
Ok, let’s do the necessary work to configure before using it.
1. Network Status Configuration
Go to the Gateway (left menu), it opens the well known Gateway page, but all in the same frame, this is WorkCenter.
If you already have configured it, then you should not have this to do, otherwise, load the connectors.
And try to ping the Gateway.
Then you must define some more properties in the Gateway, go to the Setup page, again, it may or may be not required depending if you already did it :
You should fill a node definition, in the “Node Name” field :
And to be able to do that, you should have a messaging PUB/SUB server running. I have one dedicated to the messages :
Now we can give all the details, and the ping should work :
Ok, the server was not started, after starting it up, the ping just works fine :
Go to the Advanced Properties page of the gateway, the keystore password must be encrypted :
Use the given utility to get the encrypted value of your password :
And replace the value in clear by the returned encrypted value :
Quit and save.
Coming back to the Integration Network WorkCenter, it is now looking like this :
That’s right, even though the messaging server is started, it has not been activated yet, let’s do that.
Now, back on the Integration Network WorkCenter, it is configured !
That was nice to do all these tasks within the same menu, much easier than ever.
2. Network Integration Status
Once the configuration is done, we must set the Integration status. Otherwise, it’s no use.
Ping the node works fine :
But getting the Network Integration Status raises an error :
When I get such message, the fist is to check the log file, here is an extract :
In other words, the routing operation GETNETWORKSTATUS is not known…
Let’s find it out and modify it accordingly :
Here we go, the status of the routing is not activated. Do the change, save and go back to the WorkCenter :
Ok, it’s clear enough on this error, let’s see what’s the permission of this service operation. Again, we can do it from the WorkCenter :
And from the backend, no user is granted to this permission list :
SQL> l
1 SELECT distinct c.roleuser
2 FROM psclassdefn a, psroleclass b, psroleuser c
3 WHERE a.classid = b.classid
4 AND b.rolename = c.rolename
5* AND a.classid = 'PTPT4000'
SQL> /
no rows selected Let’s create a role especially for this permission list, and add to the user PS (I’m on HCM91).
Save and quit.
And from the backend, we can see PS with this permission list :
SQL> l
1 SELECT distinct c.roleuser
2 FROM psclassdefn a, psroleclass b, psroleuser c
3 WHERE a.classid = b.classid
4 AND b.rolename = c.rolename
5* AND a.classid = 'PTPT4000'
SQL> /
ROLEUSER
------------------------------
PS
Coming back to the WorkCenter, getting the Network Integration Status now returns :
Next time, I will go further in details of the WorkCenter possibilities, please see part 2 here.
Nicolas.
Tuesday, October 30, 2012
Peopletools patch 8.52.11 : a temp directory for process scheduler
Just installed the Peopletools patch 8.52.11 (released on October, the 16th 2012) on Oracle Linux 6.3.
When configuring the process scheduler, it raises a warning about a temporary directory…
----------------------------------------------
Quick-configure menu -- domain: hcmdemo1
----------------------------------------------
Features Settings
========== ==========
1) App Engine : Yes 6) DBNAME :[hcmdemo1]
2) Master Scheduler : Yes 7) DBTYPE :[ORACLE]
8) PrcsServer :[PSUNX]
9) UserId :[PS]
10) UserPswd :[PS]
11) ConnectID :[people]
12) ConnectPswd:[peop1e]
13) ServerName :[]
14) Log/Output Dir:[%PS_SERVDIR%/log_output]
15) SQRBIN :[%PS_HOME%/bin/sqr/%PS_DB%/bin]
16) AddToPATH :[]
Actions
=========
3) Load config as shown
4) Custom configuration
5) Edit environment settings
h) Help for this menu
q) Return to previous menu
HINT: Enter 5 to edit DBNAME, then 3 to load
Enter selection (1-16, h, or q): 4
Warning: no changes detected, some configuration files will not be updated.
Loading configuration...
==============WARNING!================
The domain does not appear to have a TMP directory set in the configuration.
Your environment will inherit the value of TMP from the parent environment
==============WARNING!================
Domain configuration complete.
This has never been there till this patch. According to the readme of the patch this is probably something related to a bug fix (thanks to Michel for pointing this out in the thread I created) :
”14301709 : IDENTIFY A DIRECTORY TO WRITE INTERMEDIATE FILES INSTEAD WRITING INSECURE TMPDIR
Post Windows 2008 Server, Windows appends the session ID with the User Temp Path which is deleted once user logs off. This causes certain sub-process which relies on Windows Temp Path like Pagelet Wizard to crash. This resolution would add the possibility of other non-volatile Temporary Path Location like {LOGDIR}.”
However it is also there on one of my Windows 2008 R2 SP1 server even though I tried to change my user temp variable outside my user default location:
----------------------------------------------
Quick-configure menu -- domain: hcmdemo1
----------------------------------------------
Features Settings
========== ==========
1) App Engine : Yes 6) DBNAME :[hcmdemo1]
2) Master Scheduler : Yes 7) DBTYPE :[ORACLE]
8) PrcsServer :[PSNT]
9) UserId :[PS]
10) UserPswd :[PS]
11) ConnectID :[people]
12) ConnectPswd:[peop1e]
13) ServerName :[]
14) Log/Output Dir:[E:\apps\ptools852\appserv\prcs\hcmdemo1\log_output]
15) SQRBIN :[E:\apps\ptools852\bin\sqr\ORA\binw]
16) AddToPATH :[C:\Windows;C:\Windows\SYSTEM32]
17) DBBIN :[E:\apps\oracle\product\11.2.0\client_32bit\BIN]
18) Crystal Path:[.]
Actions
=========
3) Load config as shown
4) Custom configuration
5) Edit environment settings
h) Help for this menu
q) Return to previous menu
HINT: Enter 5 to edit DBNAME, then 3 to load
Enter selection (1-18, h, or q): 3
Warning: no changes detected, some configuration files will not be updated.
Loading configuration...
==============WARNING!================
The domain does not appear to have a TEMP directory set in the configuration.
Your environment will inherit the value of TEMP from the parent environment
==============WARNING!================
Domain configuration complete.
I’m still looking for a way to workaround the warning. I don’t like warning that I don’t know exactly where they come from and what they mean exactly.
All the ideas are welcome.
Nicolas.
Finally the answer is here :
E-AS: Windows 2008 TEMP Directory and the Use of XSL Transformation PeopleCode API [ID 1486978.1]
Special thanks to Yvonne Hogan who sent me an email about that.
To make it short, for the existing domains, add the following two lines containing temp reference in the .ubx file of your domain ($PS_CFG_HOME/appserv/prcs/<your_domain>/psprcsrv.ubx) :
*PS_ENVFILE
TEMP={LOGDIR}{FS}tmp
TMP={LOGDIR}{FS}tmp
And magically, warning just gone. It will create subdirectory like $PS_CFG_HOME/appserv/prcs/<your_domain>/{LOGDIR}/tmp, most of the time {LOGDIR} is named LOGS.
It works for Windows as well as for Linux.
If you want to make it working for the new domain, do it also in the file $PS_HOME/appserv/prcs/psprcsrv.ubx.
It seems it will be solve in Peopletools 8.53 and back ported in PT8.52.
Thanks again to Yvonne !
Nicolas.
Tuesday, October 23, 2012
PT8.52 on OL6.3 : “strings: '/lib/libc.so.6': No such file” (bis)
One and an half year ago, I wrote a blog entry giving a workaround about such error when installing Peopletools 8.51 on Oracle Linux 6.0, it was not certified combination at that time though, so no support.
Right now, there’s Peopletools 8.52 for quite a while and Oracle Linux 6.3. According to the certification matrix on My Oracle Support, it is certified.
However, when running a simple install, we are still facing this issue (that’s why I’ve wrote “bis” in the title).
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.7738
Executing setup.linux -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
strings: '/lib/libc.so.6': No such file
Launching installer...
Preparing CONSOLE Mode Installation...
<...stopping Peopletools install...>
So, let’s have a try to apply the same workaround that I described in that other entry and see if it is still doing the trick.
[root@orion6 lib]# ln -s /usr/lib64/libc.so libc.so.6
[root@orion6 lib]# su - psoft
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.14170
Executing setup.linux -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
Preparing CONSOLE Mode Installation...
<...install Peopletools 8.52 successfully...>
We get the Peopletools installed painlessly. But later on, we need to invoke psconfig.sh to set the Peopletools environment :
[psoft@orion6 ~]$ cd $PS_HOME
[psoft@orion6 ptools852]$ . ./psconfig.sh
[psoft@orion6 ptools852]$ ls
ls: error while loading shared libraries: /lib/libc.so.6: invalid ELF header
[psoft@orion6 ptools852]$
[psoft@orion6 ptools852]$ vi psconfig.sh
vim: error while loading shared libraries: /lib/libc.so.6: invalid ELF header
Hmmm, not nice, is it ? So, let’s have a look what happens if we remove that file :
[root@orion6 lib]# ls -lrt
total 36
drwxr-xr-x. 2 root root 4096 Apr 16 2012 security
drwxr-xr-x. 6 root root 4096 Oct 23 09:27 terminfo
lrwxrwxrwx. 1 root root 14 Oct 23 09:28 cpp -> ../usr/bin/cpp
drwxr-xr-x. 3 root root 4096 Oct 23 09:29 alsa
drwxr-xr-x. 3 root root 4096 Oct 23 09:29 crda
drwxr-xr-x. 6 root root 4096 Oct 23 09:31 kbd
drwxr-xr-x. 2 root root 4096 Oct 23 09:31 lsb
dr-xr-xr-x. 6 root root 4096 Oct 23 10:05 modules
drwxr-xr-x. 45 root root 4096 Oct 23 10:05 firmware
drwxr-xr-x. 5 root root 4096 Oct 23 11:44 udev
lrwxrwxrwx. 1 root root 18 Oct 23 12:14 libc.so.6 -> /usr/lib64/libc.so
[root@orion6 lib]# rm -f libc.so.6
[root@orion6 lib]# su - psoft
[psoft@orion6 ~]$ . $PS_HOME/psconfig.sh
[psoft@orion6 ~]$ ls
bea psft
[psoft@orion6 ~]$
It works much better. But then any further installation will fail again as explained earlier…
For the record, here’s the OS details (OL6.3) :
[psoft@orion6 ptools852]$ more /etc/redhat-release
Red Hat Enterprise Linux Server release 6.3 (Santiago)
[psoft@orion6 ptools852]$
[root@orion6 ~]# uname -a
Linux orion6.phoenix.nga 2.6.39-200.34.1.el6uek.x86_64 #1 SMP Thu Oct 18 17:00:17 PDT 2012 x86_64 x86_64 x86_64 GNU/Linux
[root@orion6 ~]#
Finally, there’s something looking much better. A link to an other library, a 64bit :
[root@orion6 lib]# ln -s /lib64/libc.so.6 /lib/libc.so.6
[root@orion6 lib]# su - psoft
[psoft@orion6 ~]$ . $PS_HOME/psconfig.sh
[psoft@orion6 ~]$ ls
bea psft
[psoft@orion6 ~]$
You have a working environment, and the Peopletools installation is also working fine with this last symbolic link :
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.23315
Executing setup.linux -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
Preparing CONSOLE Mode Installation...
===============================================================================
PeopleTools (created with InstallAnywhere)
-------------------------------------------------------------------------------
<… continuing…>
So in first instance I was probably wrong last year, whereas it should be a symbolic link from /lib/libc.so.6 pointing to /lib64/libc.so.6.
----
But overall, we can also ask why this link is needed for the installation even though Peopletools claims to be a real 64bit…
It should be somewhere in the setup itself.
Just going a little bit further, having a look into ./Disk1/InstData/setup.linux, if you're searching for "libc", there's only one occurrence, and you'll see the libc.so.6 is hardcoded to be tested under /lib. Sic.
Here’s an extract:
…
nptl="`strings /lib/libc.so.6 | grep -i nptl`"
if [ "$nptl" ]; then
debugOut "NPTL detected! checking for vulnerable JVM....";
…
Obviously, when running the strings command (the very first line from above), it aborts within the same error message that we get during the very first installation :
[psoft@orion6 InstData]$ strings /lib/libc.so.6 | grep -i nptl
strings: '/lib/libc.so.6': No such file
[psoft@orion6 InstData]$
So, apart from creating a link as earlier in this article, you may prefer to modify the setup.linux. At least it affects only the installer, not the system itself, so most likely better.
Remove the link created above and replace the given line in setup.linux.
However, since it's an binary file, you cannot just edit the file, modify and save.
nptl="`strings /lib/libc.so.6 | grep -i nptl`"
must be replaced by
nptl="`strings /lib64/libc.so.6|grep -i nptl`"
Note that luckily enough, whether we need two more characters for “64”, and we can remove two extra spaces to keep the same amount of bytes in the binaries file.
Using sed command, it’s doable (do not forget to save the source file first!):
[psoft@orion6 InstData]$ cat setup.linux.bak|sed "s/\/lib\/libc.so.6 | grep -i nptl/\/lib64\/libc.so.6|grep -i nptl/">setup.linux.new
Now the script looks like :
# LD_ASSUME_KERNEL for Native POSIX Threading Library on some Linux distros
if [ `uname` = "Linux" -a -n "`which strings 2>/dev/null`" ]; then
debugOut "checking for NPTL + JVM vulernability..."
#check libc to see if it was compiled with NPTL
nptl="`strings /lib64/libc.so.6|grep -i nptl`"
if [ "$nptl" ]; then
debugOut "NPTL detected! checking for vulnerable JVM....";
To be convinced this is working, here a run without the link :
[psoft@orion6 InstData]$ cp setup.linux.bak setup.linux
[psoft@orion6 InstData]$ cd ../
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.30517
Executing setup.linux -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
strings: '/lib/libc.so.6': No such file
Launching installer...
Preparing CONSOLE Mode Installation...
===============================================================================
PeopleTools (created with InstallAnywhere)
-------------------------------------------------------------------------------
===============================================================================
Welcome
-------
InstallAnywhere will guide you through the installation of PeopleTools 8.52.
PRESS <ENTER> TO CONTINUE: ^C
[psoft@orion6 Disk1]$
Now going for the new file:
[psoft@orion6 Disk1]$ cp InstData/setup.linux.new InstData/setup.linux
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.30741
Executing setup.linux -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
Preparing CONSOLE Mode Installation...
===============================================================================
PeopleTools (created with InstallAnywhere)
-------------------------------------------------------------------------------
===============================================================================
Welcome
-------
InstallAnywhere will guide you through the installation of PeopleTools 8.52.
PRESS <ENTER> TO CONTINUE:
<…skipped…>
===============================================================================
Installation Complete
---------------------
Congratulations. PeopleTools has been successfully installed to:
/apps/psoft/ptools852
PRESS <ENTER> TO EXIT THE INSTALLER:
[psoft@orion6 Disk1]$ exit
logout
[root@orion6 lib]# su – psoft
[psoft@orion6 ~]$ . $PS_HOME/psconfig.sh
[psoft@orion6 ~]$ cd $PS_HOME/appserv
[psoft@orion6 appserv]$ ./psadmin -v
Version 8.52
[psoft@orion6 appserv]$
Of course (sic), the same applies to all the Peopletools patches as well… for instance:
[psoft@orion6 InstData]$ pwd
/nfs/software/PeopleSoftCD/PeopleTools/PT8.52/PeopleTools8.52.02/cd85202/Disk1/InstData
[psoft@orion6 InstData]$ grep libc setup.linux
#check libc to see if it was compiled with NPTL
nptl="`strings /lib/libc.so.6 | grep -i nptl`"
[psoft@orion6 InstData]$
In the end, whether this error can probably be ignored, it should be better to have this cleaned definitely from within the installer (or why it is missing from the OS level ?).
Nicolas.
