4.12.15

OracleVM Serial Console Not Working - serial_console (serial_console) main process ended, respawning

 

After upgrading to the latest OracleVM 3.3.3 and updating all Oracle Linux 6 guests to the latest versions I started to see problems with OL6 serial console interface. First of all, the serial console didn’t seem to work at all, I could not connect to the console via OracleVM Manager serial console. Secondly there started to be continuous error messages in the OL6 /var/log/messages file:

Dec  4 06:30:34 atlassian init: serial_console (serial_console) main process (4704) terminated with status 1
Dec  4 06:30:34 atlassian init: serial_console (serial_console) main process ended, respawning

At the same time all Oracle Linux 5 servers worked fine and also few OL6 servers as well, but most of the OL6 servers suffered from this.

Those OL6 servers that worked fine had symbolic link in /dev/ where “serial_console” pointed to hvc0 device. Those OL6 servers that had problems this symbolic link points to ttyS0.

Don’t know exactly what is the root cause of this problem, but looks like there are two symlink definitions in kernel device udev rules and in some servers they point to hvc0 and some servers to ttyS0.

My fix to this problem was to edit the udev rules

vi /etc/udev/rules.d/50-udev.rules

Original content:

KERNEL=="ttyS0",                SYMLINK+="serial_console"
KERNEL=="hvc0",                 SYMLINK+="serial_console"

Remove the ttyS0 line so that the content looks like:

KERNEL=="hvc0",                 SYMLINK+="serial_console"

Save the file and reboot the server. After this serial console should work ok and no extra error messages should be appearing in the messages log file.

27.10.15

Changing OracleVM Manager 3.3.3 Server Certificate

 

OracleVM 3.x Manager server uses self signed certificates by default. OracleVM Manager certificate can be changed to use custom server certificates but unfortunately every time OVM Manager is upgraded, the server certificates are reset back to self signed certificates.

The latest OVM Manager versions use certificates to connect between OVM client and the server. This means that in order to get OVM Manager working properly also the ovmclient certificate keystore needs to be updated to include the needed root CAs. The problem with updating the ovmclient keystore is that the password for the keystore is generated and stored in the JPS keystore.

Use abbreviations in this blog:

  • CA = Certificate Authority
  • CSR = Certificate signing request

In this article I’ve used imagenary company ACME (A company that makes everything).

Working directory for the certificates is:

/u01/app/oracle/ovm-manager-3/domains/ovm_domain/security

Please execute all these steps as “oracle” user, with the exception of restarting the OVM Manager.

Step 0: Backup

Before your start doing anything, you should back up all needed files. Start with backing up the domain security directory and it’s contents:

/u01/app/oracle/ovm-manager-3/domains/ovm_domain/security

Secondly back up domain config directory and it’s contents:

/u01/app/oracle/ovm-manager-3/domains/ovm_domain/config

Step 1: Create new OVM Manager identity keystore

For example:

/u01/app/oracle/java/bin/keytool -keystore vmm3.jks -genkey -alias vmm3 -dname "EMAILADDRESS=admin@acme.com, CN=vmm3.acme.com, OU=ACME Ltd, O=IT, L=Espoo, ST=Uusimaa, C=FI" -keyalg rsa -keysize 2048
You don’t need to change the trust keystore.

Step2: Create certificate request

/u01/app/oracle/java/bin/keytool -keystore vmm3.jks -certreq -alias vmm3 -keyalg rsa -keysize 2048 -file vmm3.csr

Step 3: Use your chosen CA to sign the CSR


Send the contents of vmm3.csr to your CA and generate the service certificate.


Step 4: Import your CA


If you are using custom CA or public CA you need to import the CA public certificate into your keystore. In my example cacert.crt file is the public certificate for ACME CA.

/u01/app/oracle/java/bin/keytool -import -keystore vmm3.jks -file cacert.crt -alias ACMECA

Step 5: Import OVM CA


In my installation I also imported the OVM CA that was generated  by default for the installation. This step might not be needed since the OVM CA is already included in the trust jks. But anyways, importing this CA would not make any harm either.

/u01/app/oracle/java/bin/keytool -keystore vmm3.jks -import -file ovmca.pem -trustcacerts -alias ovmca

Step 6: Import your server certificate


After your CA has generated the server certificate, save it to e.g. vmm3.crt file and import it to the new keystore:


/u01/app/oracle/java/bin/keytool -import -keystore vmm3.jks -file vmm3.crt -alias vmm3


Step 7: Update WebLogic managed server keystore and SSL


At this point change the default ovmssl.jks to vmm3.jks and change the password to reflect the pwd you used when creating the vmm3.jks keystore.


When you restart the OVM Manager server you can see that https should now be working but you are still not able to connect to OVM Manager application. Instead you might see following error messages in the AdminServer.log file:

Caused By: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
at sun.security.validator.Validator.validate(Validator.java:260)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
at com.oracle.ovm.appfw.ws.client.SSLContextFactory$X509ExtendedTrustManagerWrapper.checkServerTrusted(SSLContextFactory.java:307)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1428)

Step8: Update ovmclient.jks to include the used CA


ovmclient.jks is self generated keystore that also needs to have the CA certificate that OVM Manager server is using. In my example case the ACME CE certificate needs to be imported into this JKS keystore. The problem is that we need to dig out the keystore password first. This can be done using little piece of Jython code.


Create file e.g. called getpwd.py:

import sys
from oracle.security.jps.mas.mgmt.jmx.credstore import PortableCredential
connect('weblogic','password,'t3://localhost:7001')
domainRuntime()

on = ObjectName("com.oracle.jps:type=JpsCredentialStore")
sign = ["java.lang.String","java.lang.String"]
params = ["ovm_console","client.keystore"]
pwd = mbs.invoke(on, "getPortableCredential", params, sign)
credObject = PortableCredential.from(pwd)
print "PASSWORD:" + String.valueOf(credObject.getPassword())
Execute the script using wlst.sh
cd /u01/app/oracle/Middleware/oracle_common/common/bin
./wlst.sh getpwd.py
You should now have the password for the ovmclient.jks and ready for the final step.

Step 9: Import your CA into ovmclient.jks

/u01/app/oracle/java/bin/keytool -keystore ovmclient.jks -import -trustcacerts -file cacert.crt -alias ACMECA

Step 10: Restart the OVM server


As root:


service ovmm stop


service ovmm start


After these steps you should have your OVM Manager up and running using your chosen server certificate and your chosen CA.

 

25.6.15

OSB 12c Deployment Issues with BPM Enabled Domain

 

Another gray hair on my head today. It took a long time to find out the problem on my OSB 12.1.3 deployment problem. Created relatively simple OSB project with XSLT transformation. Started getting weird problems stating that I had problems with my WSDLs related to the XSLT. Removed the XSLT, still getting deployment errors “java.net.MalformedURLException”:

[05:28:43 PM] ----  Deployment incomplete  ----.
[05:28:43 PM] Conflicts found during publish.
The WSDL is not semantically valid: Failed to read wsdl file from url due to -- java.net.MalformedURLException: Unknown protocol: servicebus.
[OSB-398016]Error loading the WSDL from the repository: Failed to read wsdl file from url due to -- java.net.MalformedURLException: Unknown protocol: servicebus
[05:28:43 PM] Conflicts found during publish.

This is bug 18856204 that occurs when OSB is installed on the same domain as BPM.

The fix is to add:
felix.service.urlhandlers=false

in "bac-svnserver-osgi-framework" Init Properties –setup and then restart admin server.

Fix was originally found in this article:

https://middlewarebylink.wordpress.com/2014/07/17/soa-12c-end-to-end-e2e-tutorial-error-deploying-validatepayment/

OSB 12c Test Console Not Working

 

You might face an issue with 12.1.3 OSB web based test console not working when you press the “Play” button from OSB console. You might see following error:

Error Accessing Test Configuration
"Test Console" service is not running. Contact administrator to start this service.

Manual instructs you to set the Admin Server listen address to something else than empty (which means admin server listens for all IP addresses). An example of “localhost” could be valid if you are running your installation e.g. on your own workstation.

In my case I had to also set the listen addres for the osb server as well in order to get the test console working properly. After setting the listen address you need to bounce the servers.

28.4.15

Changing Environment Warning Color on WLS Console

 

One of the rare mistakes in system configuring is when you actually thought you were in development or testing environment, but the browser actually pointed to production. You might even have the same credentials between the environment (e.g. linked to AD or LDAP directory), making it difficult to recognize the fatal error until it’s too late.

When the consoles look alike there is nothing to differentiate from the other environments but you just have to be sharp to acknowledge were you are.

One of the easiest changes to prevent these errors happening could be to change the production (or some other) environment WLS console coloring so that it differs from other environments to alarm that this is not for testing or development.

How about if the WLS console looked like this:

image

This is easily done.

WebLogic 12c

cd $WLHOME/wlserver/server/lib/consoleapp/webapp/css

WebLogic 11g

cd $WLHOME/wlserver_10.3/server/lib/consoleapp/webapp/css

 

Make backup of the content.css.

Edit the toolbar background color:

/*
    Toolbar Area
*/
.toolbar {
    background-color: #D2E5F9;
    overflow: hidden;
    width: 100%;
    padding: 1px;
}

 

change it to something else, like orange/red:

/*
    Toolbar Area
*/
.toolbar {
    background-color: #FF6666;
    overflow: hidden;
    width: 100%;
    padding: 1px;
}

After this change the WLS console immediately shows “warning color” in the toolbar as a marker for a production environment.

You might need to make sure the change is redone after system upgrades if the default content.css is for some reason overridden.

19.3.15

The trustAnchors parameter must be non-empty -error

If you ever configured AD or some other LDAP authentication provider for you WebCenter, SOA or BPM Suite and decided to follow the best practice on securing the LDAP traffice with SSL you will most propably end up with problems connecting to LDAPS at some point.

You might see these errors in your log file:

Caused By: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

The problem is that even if you imported your LDAP or AD server root and intermediate CAs into either JKS (11G) or KSS (12c) you need to perform one additional step on creating keystore for libOVD and is used with identity provider virtualization (once you set up “virtualize=true” in the domain security provider setup.

To get the problem solved you need to perform two steps:

1. Run libovdconfig.sh that creates the adapters.jks for libOVD

2. Import the needed CA certificates into this adapters.jks

 

Detailed steps are described below.

For the step 1 (12c installation being here as a sample, the same applies with 11g but a bit different subdirectory names for Oracle Home and WL Home):

cd /u01/app/oracle/product/fmw12c/oracle_common/bin/

export ORACLE_HOME=/u01/app/oracle/product/fmw12c/soa
export WL_HOME=/u01/app/oracle/product/fmw12c/wlserver
export JAVA_HOME=/usr/java/latest

./libovdconfig.sh -host myhost.com -port 7001-userName weblogic -domainPath /u01/app/oracle/admin/BPMDEV_Domain/mserver/BPMDEV_Domain -createKeystore

Once the keystore is created, proceed to step 2:

cd /u01/app/oracle/admin/BPMDEV_Domain/mserver/BPMDEV_Domain/config/fmwconfig/ovd/default/keystores
/usr/java/latest/bin/keytool -import -file mycacertificate.der -keystore adapters.jks -trustcacerts -alias ldap.myhost.com

Enter keystore password: ********
Certificate already exists in system-wide CA keystore under alias <ldap.myhost.com>
Do you still want to add it to your own keystore? [no]: yes
Certificate was added to keystore

After these steps restart the managed servers and you are good to go.

28.2.15

Best Practice on Pointing to Latest JDK in FMW Installation

 

One of the best practices in Oracle Middleware installations is to point to logical “latest” JDK directory in the configuration files. When you install e.g. WebLogic server 11g on Linux you need to have the JDK installed before starting up the WebLogic installation.

You might have installed e.g. JDK 1.7. rpm which installs the JDK into /usr/java and by default has the best practice directories “default” that points to “latest” and “latest” symbolic link that points to the latest/wanted JDK installation.

/usr/java might look like this:

drwxr-xr-x. 8 root root 4096 Feb 28 08:09 jdk1.7.0_75
lrwxrwxrwx. 1 root root   21 Feb 28 08:09 latest -> /usr/java/jdk1.7.0_75
lrwxrwxrwx. 1 root root   16 Feb 28 08:09 default -> /usr/java/latest

If you didn’t have the “latest” symbolic link there, you might be running older versions like JRockit or JDK6.

Despite of having the /usr/java/latest symbolic link, you will get the full real path suggested in the installer:

image

Despite of pressing “Browse…” and choosing the /usr/java/latest, the JDK path will not change in the installer. You will get “Please select appropriate JDK” error.

image

There are two options to go:

1. Install the software pointing to the real path and then later change all shell scripts etc. pointing to the real path, to point to /usr/java/latest

or

2. Exit the installer and change the real JDK directory name temporarily to /usr/java/latest, restart the installer and the installer will find the JDK in the path /usr/java/latest, configure the environment variables. After the installer has finished, change the real JDK path back to what it was and point the /usr/java/latest to point to the wanted JKD version.

Here are the steps for the option 2)

cd /usr/java

mv latest latest.old

mv jdk1.7.0_75 latest

Install the Oracle FMW software. When installing e.g. Weblogic server you should point the JDK to /usr/java/latest.

image

After the installation has finished, reverse the changes:

mv latest jdk1.7.0_75

mv latest.old latest.

 

You can veriry that the shell scripts point to this logical directory by looking at:

$MW_HOME/wlserver_10.3/common/bin/commEnv.sh.

22.11.14

OracleVM 3.3.1 and External Authentication

Some of the customers (including my company Ratioware) has defined OracleVM Manager to use external authentication (like LDAP or Active Directory) to be used to authenticate the users when logging into OracleVM Manager console.

This used to work well with OracleVM 3.2.x.

When we upgraded OracleVM 3.2.8 to OracleVM 3.3.1 we noticed that all those custom authentication settings were lost. Well, that is “kind” of acceptable assuming Oracle perhaps doesn’t like us to tweak the underlying WebLogic.

After changing the authentication provider back to utilize our external authentication provider I noticed that I wasn’t any more able to login to OracleVM console. I was able to login to WebLogic Console but not into OracleVM Manager console. I got “Unexpected error during login”.

Error messages in the weblogic log files stated:

<2014-11-11T20:19:25.066+0200> <Error> <com.oracle.ovm.appfw.coreinterface.ConnectionManager> <BEA-000000> <AppFw session 1: Failed to connect to Web Service API.
com.oracle.ovm.mgr.ws.model.WsException: AUTH_000002:Connection to manager failed: AUTH_000002:Connection to manager failed: Certificate authentication failed: certificate unrecognized (CN=admin, OU=Oracle VM Manager, O=Oracle Corporation, C=US).
Tue Nov 11 20:19:25 EET 2014 (AUTH_000002)

Changing the order of authentication providers or the requried –attributes didn’t help in the issue.

There is Oracle Doc ID 1942473.1 related to this with solution suggestion:

Steps to fix this:

  1. cd /u01/app/oracle/ovm-manager-3/bin/
  2. ./configure_client_cert_login.sh

The configure_client_cert_login.sh will ask you the username and the password for the OVM manager. In my case I did have “admin” user but for some reason the password was not upgraded correctly and I needed to reset the “admin” user password in OVM WLS console before I could execute this script correctly.

You could potentially also use “weblogic” user to run the script.

After running this client certification script the OracleVM Manager login started working correctly and we were able to use our external authenticator with our OracleVM Manager console.

9.11.14

Connection to VirtualBox BPM 12c Project Access Manager (PAM) from Local JDeveloper

I attended Oracle BPM Suite 12c partner training in Finland and the labs had Oracle Virtual Box image that we used in the training.

Virtual Box had JDeveloper embedded but I wanted to use my local copy of BPM Quick Start JDeveloper running on my bare metal laptop.

When trying to set up Project Access Manager (PAM) and connect to the repository I would get errors like: Could not connect to repository endpoint: localhost:7323

The reason for this was that when the internal SVN server starts up it looks up the hostname (soabpm-vm in this case) and queries the IP address for this. In pre-built virtual box the /etc/hosts file looks like:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
soabpm-vm soabpm-vm.site

When BPM Suite 12c is starting up all other components start listening for 0.0.0.0 address (all IP addresses) but SVN server starts listening for 127.0.0.1 address. This means we cannot access this SVN address outside the Virtual Box, even when using port forwarding.

I tried to find a way to configure the SVN server to listed for 0.0.0.0 addresses but I could not find that. That was somewhere deep inside the code that wasn’t easily discovered.

To workaround this issue it requires reconfiguring the network interfaces:

Step 1

Add second network interface to virtual machine that is attached to “Host-Only Adapter”.

image

This enables the connectivity to 192.168.56.0 network.

In my setup Host Only network details looks like this in the main Virtual Box preferences window:

SNAGHTML7043576

As we can see the built-in DHCP server starts delivering the DHCP addresses starting from 192.168.56.101. It is safe to assign fixed addresses below 192.168.56.100, in this case I decided to assign my Virtual Box BPM 12c installation a fixed IP address of 192.168.56.50.

I still wanted to keep the NAT network interface in the virtual box because that enables me to use network resources outside the virtual box (like external YUM repositories etc).

Step 2

Configure the ethernet interface (either eth1 or eth2 depending on how you defined your virtual networks in VM settings):

cd /etc/sysconfig/network-scripts

ifcfg-eth2 or (ifcfg-eth1 if you changed the NAT’ed to Host-Only Adapter)
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
DEVICE=eth1
BOOTPROTO=static
TYPE=Ethernet
HWADDR=08:00:27:41:19:1a
NM_CONTROLLED=no
PEERDNS=yes
IPADDR=192.168.56.50
SUBNET=255.255.25.0

Remember to change the HWADDR to point to your virtual NIC Hardware address.

After changing the network adapter settings you can reset the network settings my issuing command “service network restart” as root.

Step 3

Changed the IP address in the /etc/hosts file like this:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.50 soabpm-vm soabpm-vm.site

Step 4

After network settings has been changed restart the BPM Suite 12c installation. If running pre-build BPM 12c image, just bounce the AdminServer.

Step 5

Edit your workstartion hosts file to point to the fixed IP address. As Windows Administrator edit the file

C:\Windows\System32\drivers\etc\hosts

Add line:

192.168.56.50 soabpm-vm.site soabpm-vm

Step 6

Configure your BPM Studio PAM connection and test that it works:

image

22.4.14

OpenSSL Heartbleed Oracle Fixes

Some of the Oracle software is also affected by the Heartbleed vulnerability. Specifically if you are using Oracle Linux 6, you should update your operating system using ULN or Oracle Public YUM repository.

For more information please see:

http://www.oracle.com/technetwork/topics/security/opensslheartbleedcve-2014-0160-2188454.html

3.4.14

OracleVM 3.2.8 Downloadable

OracleVM 3.2.8 just got published in Oracle Support and Public Yum repository.

Use Patch 16410417 to download the OracleVM Manager 3.2.8 zipped ISO image. You can use Oracle yum repository to upgrade your OracleVM Servers.

7.2.14

Oracle BPM Suite 11.1.1.7.2 WebForms entryId is null

Ran into Oracle BPM Suite 11.1.1.7 Web Form issue after upgrading from 11.1.1.6 to 11.1.1.7. When trying to create web form in Oracle BPM composer, I get “entryId is null” error.

When looking at the log files I can see

[2014-02-06T13:54:03.233-08:00] [AdminServer] [ERROR] [] [com.frevvo.forms.web.ConfigurationResource] [tid: [ACTIVE].ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 11d1def534ea1be0:-4d925ede:14409288963:-8000-00000000000002a3,0] [APP: frevvo] Configuration error: Users database schema - ORA-00942: table or view does not exist[[]]

… 
[2014-02-06T13:54:03.245-08:00] [AdminServer] [WARNING] [] [com.frevvo.billing.database.UserDBUtil] [tid: [ACTIVE].ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 11d1def534ea1be0:-4d925ede:14409288963:-8000-00000000000002a3,0] [APP: frevvo] Could not get user ids for tenant d[[
java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist      

Solution

Even though I had executed psa against the SOA infrastructure, looks like still some tables were not upgraded properly. Might have been because I extended the domain with Frevvo extensions later on.

Solution is to execute psa (once more) for soainfra. This will upgrade soa-infra to 11.1.1.7. so that those Frevvo tables are created properly and you can design your Web forms.

11.11.13

Extending OracleVM Guest Disk

These instructions has been working at least with OracleVM 2.2 disk images.

Every now and then you might end up with situation where you run out of disk space on your guest VM.

1. Shut down your guest VM.

In order for the guest VM to recognize the extended disk size you need to have the system restarted.

2. Navigate to the guest VM directory in your OracleVM Server.

cd /OVS/running_pool/myhost

In this example the guest VM has ran out of disk space on yumrepo.img.

We want to extend this disk from 100GB –> 200 GB.

3. Create an additional 100GB empty temporary file:

dd if=/dev/zero of=tempfile bs=1024 count=10000000

or:

dd if=/dev/zero of=tempfile bs=100G count=1

This might take some time depending on your storage connection.

4. Make a backup out of extendable disk image file

cp yumrepo.img yourepo-old.img

5. Concatenate the empty disk image to the end of the existing disk image.

cat tempfile >> yumrepo.img &

Depending on your storage system, this step could also be taking some time. If you experience network timeouts on your ssh terminal session, it’s good practice to submit your concatenation to background using “&”.

6. Start the guest VM again and login as root.

After restart the guest VM should internally recognize the extended device, althought you cannot see that bigger size before you have resized the disk.

7. Unmount the disk if that has been in use.

8. You have to repartition the disk image with fdisk.

fdisk /dev/xvdb

Print out the partition layout with “p” option to see how the disk has been formatted. If you see that image is constructed out of one primary partition, please go ahead with these instructions. If you see that disk is constructed such way that e.g. the swap space is the latest and the partition you wanted to extend cannot be extended without deleting the swap partition, please do not go ahead with these instructions. This latter example is e.g. when you try to extend a system disk.

Remove the partition with “d” option and create again (n –> primary –> 1). When recreating the partition again you will see larger sector end number.

9. Check the filesystem:

fsck -f /dev/xvdb1

10. Resize the filesystem:

resize2fs /dev/xvdb1

11. Mount the file system and it’s ready to use.

30.9.12

SOA Suite 10g–> 11g migration and Issue with composite.xml Attributes

Here is a heads up for those that might still be working on 10g –> 11g migrations. There is one unfortunate bug (8980875) in the migration process that seems innocent in the beginning but has critical effects in the end.

I logged a service request for continuous XML parse errors in the managed server log files:

org.xml.sax.SAXParseException: <Line 5, Column 92>: XML-20129: (Error) Namespace prefix 'ui' used but not declared.

This occurs at deployment time. In most cases the deployed composite worked just fine.

Error comes from the composite.xml content where the migrated 10g SOA projects have all the XML root element “composite” attributes in a single line. The deployment parser seems to be some sort of home grown XML parser that assumes that all the attributes are physically separated in their own lines, like this:

<composite name="Archive"
           revision="1.0"
           label="2012-08-16_09-51-28_557"
           mode="active"
           state="on"
           xmlns="
http://xmlns.oracle.com/sca/1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
           xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy"
           xmlns:ui="http://xmlns.oracle.com/soa/designer/">
</composite>

and when the migrated projects have something like this:

<composite name="HelloWorld" revision="1.0" mode="active" state="on" xmlns:ui="http://xmlns.oracle.com/soa/designer/

in a single line, the deployment will give errors in this part. You might have some references in composite.xml pointing to external servers using “ui.wsdlLocation” like this:

<reference ui:wsdlLocation=http://mydevhost1.mydomain.com:8001/soa-infra/services/CommonExceptionHandling/CommonExceptionHandling.wsdl name="CommonException...

By default these should not affect the runtime environment since this is used at development time. Unfortunately combined with this bug 8980875, the pointer seems to stay in the runtime environment causing gray hairs when e.g. all of the sudden production environment has pointers to development environment. Changing this ui.wsdlLocation seems very hard if not possible using the built-in deployment scripts and default search/replace element descriptors.

In the end, the advice from me is to change all the migrated 10g –> 11g SOA projects manually to correct the composite.xml “composite” element attributes to their own lines. This will help greatly in the dev->tst->prd deployments avoiding those unwanted cross environment pointers.

17.9.12

One possible reason for not being able to login to OracleVM Manager

Today I faced the a weird situation when trying to login to OracleVM Manager 3.0.1 console. OVMM console did show up and provided me login screen. After entering username and password I got a weird internal error claiming login failed. Username and password were the right ones.

After a while of of debugging I noticed that all the passwords had expired from the OracleDB that holds the OracleVM repository.

I logged in as sys user and changed the default profile:

alter profile default limit password_life_time unlimited;

Then altered the passwords for the most important accounts: SYSTEM, OVS.

SYS user seemed to be in ok condition.

Then I restarted the OVMM process (root):

service ovmm stop
service ovmm start

After this login worked fine.

20.11.11

BPM Editor and Python Extension Not Playing in Nicely in the Same Sandbox

I was playing with the latest FMW 11.1.1.5 BPM Feature Pack when I noticed immediate NPE when launching any BPM process editor in my JDeveloper.

The stack trace was:

java.lang.NullPointerException

        at oracle.bpm.ui.action.BaseAction$ActionFuegoAction.putValue(BaseAction.java:496)

        at oracle.bpm.ui.action.BaseAction.setMsg(BaseAction.java:312)

        at oracle.bpm.ui.action.BaseAction$ActionFuegoAction.<init>(BaseAction.java:476)

        at oracle.bpm.ui.action.BaseAction.valueOf(BaseAction.java:100)

        at oracle.bpm.designer.catalogdoc.DocumentationEditorPanel.createActions (DocumentationEditorPanel.java:521)

        at oracle.bpm.designer.catalogdoc.DocumentationEditorPanel.createEditorPanel(DocumentationEditorPanel.java:504)

        at oracle.bpm.designer.catalogdoc.DocumentationEditorPanel.init(DocumentationEditorPanel.java:472)

After debugging long enough I found out that this was a compatibility problem with JDeveloper Python Extension and BPM Editor.

Python Extension is something I ported from JDev 10.1.2 to 10.1.3 and latest rewrote some portions to get it working on JDeveloper 11g. Aparently there is something causing side effects in BPM Editor so the recommendation from me is to disable this Python Extension to get BPM Editor working without these NPE issues.

To disable any extension you can follow these menu options:

Tools –> Preferences –> Extensions (from the left hand panel) –> Uncheck the Checkbox from Python Extension

8.11.11

Word of Warning for OracleVM 2.2 Upgraders

Decided to start upgrading my OracleVM 2.2 servers to the new OracleVM 3.0.2.

First obstacle was that the installation application didn’t recognize the CD drive it was originally started from. Weird. Got an error stating that I should have drivers to read the CD.

Went to buy an external USB DVD drive. Started the installation from there. Got a bit further but at the time I was supposed to choose my hard disk for partitioining, OracleVM 3.0.2 did’n find the hard drives at all.

Looks like OracleVM 3.0.2 is very picky on the supported hardware systems you can run it on.

Finally managed to install OracleVM 3.0.2 on USB Stick acting as hard drive. Well, obviously this isn’t a perfect solution to run my virtualization servers, so I reverted back to OracleVM 2.2.

So a word of warning to all those thinking of upgrading. You can either test the installation media just to see if it recognizes your hard drivers and then make decision whether to go forward or not.

I’m waiting for a new version of OracleVM to be released and hoping it has the kernel modules for my AMD/VIA based motherboard.

25.8.11

OracleVM 3.0 Finally Out

The wait is over for those that have been waiting for OracleVM 3.0:

http://www.oracle.com/us/corporate/press/459406

When starting my own business (http://www.ratioware.com), I decided to set up all my servers as OracleVM 2.2 virtual servers. I’ve been more than happy running my stuff virtualized, so I’m very interested in getting hold on OracleVM 3.0.

There are number of enhancements worth mentioning:

  • Policy based resource management
  • Centralized network and storage configuration and management
  • Performance, scalability and security enhancements
  • New management console

Not so happy surprise was that upgrading from OracleVM 2.2 was non-existent. All servers must be reinstalled with OracleVM 3.0.1 software, but you could utilize the 2.2 templates and virtual images.

I’m currently downloading the OVM 3.0 Server and Management Console installation packages and start planning for 2.2 –> 3.0 upgrade on my own server pool.

Maybe this would be a good time to get rid of my iSCSI SAN setup and replace it with NFS for easier management (backups, image copying etc).

Stay tuned for experiences on OVM 3.0 once I get it up and running.

15.12.10

Microsoft Powerpoint notes removal addin on Office 2007 and Windows 7

Here’s an update on my previous (dated back in 2005) blog posting on Microsoft Powerpoint 2007 notes removal add-in.

The actual add-in file is still valid and working on Office 2007. You can find it here:
http://www.pcuf.fi/~hkaukovu/blog/HJK_Remove_Notes.ppa

Update is related to where you should copy the *.ppa file on Windows 7 and how to add the add-in on Powerpoint 2007. First of all, download and copy the *.ppa file to your Windows user roaming directory:

C:\Users\<windowsusername>\AppData\Roaming\Microsoft\AddIns

e.g on my machine the path where to copy this is:

C:\Users\hkaukovu\AppData\Roaming\Microsoft\AddIns

Here are the steps to enable the add-in:

1. Go to powerpoint options

image

2. Choose Add-Ins

image

3. From lower part of window choose “Manage: Powerpoint Add-Ins” and press “Go…”

image

4. Press “Add New…”

image

5. Select the *.ppa file

image

6. Press Enable Macros

image

7. You have now the notes removal add-in enabled.

'image

8. You can execute the notes removal add-in from “Add-Ins” tab.

image

The add-in activation is permanent, so next time you startup Powerpoint, this notes removal add-in should be active.

29.11.10

New Extensions for JDeveloper 11g

Some of you may know that I wrote 2-3 years ago some JDeveloper extensions for helping out with BAM data object creation (BAM Table Migration Extension), Oracle ESB diagram documentation (ESB Tools), JDeveloper Project Copying (Project Tools), Python Development (Python Addin).

It’s been some time since I last touched those extensions and finally I decided to take the bull by the horns.

What I ended up were four new extensions for JDeveloper 11g:

These extensions are now included in the official JDeveloper extension exchange and can be installed using “Check for Updates…” functionality. Be sure to check the “Open Source and Partner Extensions” update center.

To summarize what these extension do:

BAM Table/View Copier

BAM Table/View Copier is an extension to help creating BAM data objects using any relational database as “template”. An example: you have almost perfect table in your Oracle DB or Access DB and would like to use that table or view structure as BAM Data Object. Just BAM Connection on your application workspace, navigate to database navigator, choose table or view and press context menu. You will see “Copy to BAM…” which will ask you about the BAM connection to use and target BAM folder to store the data object.

Extension will copy also all data from the table so don’t be surprised. If you don’t want to copy the data, make an copy of the table (create table mytable as select * from wantedtable where 1=2) and copy the empty table.

BAM Table/View Copier also makes it possible to design BAM Data Objects using graphical JDeveloper Database designer. Just create the tables or views on relational database first and then use this extension to copy the structures as data objects. Of course you won’t be able to model all those fine grained data object lookups etc in JDeveloper but you would start your work this way.

SCA Diagram Tools

By default you cannot print or save SCA composite diagram graphics directly from JDeveloper. SCA Diagram Tools gives you possiblity to save composite diagram as PDF, JPG, BPM or PNG.

SCA Diagram Tools also makes it possible to zoom in/out using wheel mouse and pressing CTRL button at the same time. This is not enabled by default but you can do so by choosing “Enable Wheel Mouse Zoom” from SCA Diagram Tools submenu. This might be also good addition to those that have eyesight problems.

Printing the SCA composite diagram is also possible using this extension.

Python Extension

Created originally by Brian Duff for JDeveloper 9i. Migrating the plugin from 9i to 10g took a major rewrote. I did this 2008 and now migrated the python extension from 10g to 11g.

Python extension lets you develop python/jython scripts and run them directly in JDeveloper. Also you can switch on Python Console that enables you to interactively execute any Jython commands from Python Console. You could e.g. call JDeveloper internal API’s interactively if so wanted.

Jar Search Extension

When migrating sources from 10g to 11g there are times where product development have refactored their jar classes so that the old libraries no longer exist.

I created this extension to help searching for JAR files that contain the wanted java class. This was written from ground up to be used as JDeveloper extension so you can e.g. cancel the search if it takes too much time to look for JAR files recursively.

Please note that this extension is not for searching the contents of JAR entry files, it is searching the JAR entries and their filenames, which makes it lot faster than normal search.