Skip navigation.

Darwin IT

Syndicate content
Darwin-IT professionals do ICT-projects based on a broad range of Oracle products and technologies. We write about our experiences and share our thoughts and tips.Martien van den Akkerhttps://plus.google.com/110503432901891966671noreply@blogger.comBlogger250125
Updated: 13 hours 25 min ago

Expand swap using SSM

Wed, 2015-05-13 06:24
The mere reason that I dug into SSM yeasterday was that I wanted to install the Oracle Database 12c.

(Did you know yesterday came from the word 'yeast'? So actually yeasterday: because one used the yeast of the day before to bake the bread of today. Also in Dutch  the word for yeast: 'gist', still sounds in the word for yeasterday: 'gisteren'.)

I ran however against the prerequisite check on the swap space that was only 2GB because of my default OL7 install. And the Universal Installer required 8GB at least. So I needed to expand it. There are several ways to do it. But since I was into SSM, it was a good practice to use that. And it turns out very simple to do. It shows how easy it is to add a new device to a pool and an existing volume.

So I created a new disk of 8GB to my VM (I only need 8GB, but I thought I'd simply add it to the existing 2GB, to be certain to have enough with 10GB).


So, after booting up, verify existence of non assigned device (/dev/sdc):
[root@darlin-vce-db ~]# ssm list
--------------------------------------------------------------
Device Free Used Total Pool Mount point
--------------------------------------------------------------
/dev/sda 20.00 GB PARTITIONED
/dev/sda1 500.00 MB /boot
/dev/sda2 40.00 MB 19.47 GB 19.51 GB ol
/dev/sdb 0.00 KB 100.00 GB 100.00 GB pool01
/dev/sdc 8.00 GB
--------------------------------------------------------------
-----------------------------------------------------
Pool Type Devices Free Used Total
-----------------------------------------------------
ol lvm 1 40.00 MB 19.47 GB 19.51 GB
pool01 lvm 1 0.00 KB 100.00 GB 100.00 GB
-----------------------------------------------------
---------------------------------------------------------------------------
Volume Pool Volume size FS FS size Free Type Mount point
---------------------------------------------------------------------------
/dev/ol/root
ol 17.47 GB xfs 17.46 GB 12.29 GB linear /
/dev/ol/swap
ol 2.00 GB linear
/dev/pool01/disk01
pool01 100.00 GB xfs 99.95 GB 99.95 GB linear /u01
/dev/sda1
500.00 MB xfs 496.67 MB 305.97 MB part /boot
---------------------------------------------------------------------------

Then add the device to the 'ol'-pool:
[root@darlin-vce-db ~]# ssm add -p ol /dev/sdc
Physical volume "/dev/sdc" successfully created
Volume group "ol" successfully extended

And verify again:
[root@darlin-vce-db ~]# ssm list
--------------------------------------------------------------
Device Free Used Total Pool Mount point
--------------------------------------------------------------
/dev/sda 20.00 GB PARTITIONED
/dev/sda1 500.00 MB /boot
/dev/sda2 40.00 MB 19.47 GB 19.51 GB ol
/dev/sdb 0.00 KB 100.00 GB 100.00 GB pool01
/dev/sdc 8.00 GB 0.00 KB 8.00 GB ol
--------------------------------------------------------------
----------------------------------------------------
Pool Type Devices Free Used Total
----------------------------------------------------
ol lvm 2 8.04 GB 19.47 GB 27.50 GB
pool01 lvm 1 0.00 KB 100.00 GB 100.00 GB
----------------------------------------------------
---------------------------------------------------------------------------------------
Volume Pool Volume size FS FS size Free Type Mount point
---------------------------------------------------------------------------------------
/dev/ol/root ol 17.47 GB xfs 17.46 GB 12.29 GB linear /
/dev/ol/swap ol 2.00 GB linear
/dev/pool01/disk01 pool01 100.00 GB xfs 99.95 GB 99.95 GB linear /u01
/dev/sda1 500.00 MB xfs 496.67 MB 305.97 MB part /boot
---------------------------------------------------------------------------------------

Now resize the swap volume:
[root@darlin-vce-db ~]# ssm resize -s+8GB /dev/ol/swap
Size of logical volume ol/swap changed from 2.00 GiB (512 extents) to 10.00 GiB (2560 extents).
Logical volume swap successfully resized

And, again, verify:
[root@darlin-vce-db ~]# ssm list
--------------------------------------------------------------
Device Free Used Total Pool Mount point
--------------------------------------------------------------
/dev/sda 20.00 GB PARTITIONED
/dev/sda1 500.00 MB /boot
/dev/sda2 0.00 KB 19.51 GB 19.51 GB ol
/dev/sdb 0.00 KB 100.00 GB 100.00 GB pool01
/dev/sdc 36.00 MB 7.96 GB 8.00 GB ol
--------------------------------------------------------------
-----------------------------------------------------
Pool Type Devices Free Used Total
-----------------------------------------------------
ol lvm 2 36.00 MB 27.47 GB 27.50 GB
pool01 lvm 1 0.00 KB 100.00 GB 100.00 GB
-----------------------------------------------------
---------------------------------------------------------------------------------------
Volume Pool Volume size FS FS size Free Type Mount point
---------------------------------------------------------------------------------------
/dev/ol/root ol 17.47 GB xfs 17.46 GB 12.29 GB linear /
/dev/ol/swap ol 10.00 GB linear
/dev/pool01/disk01 pool01 100.00 GB xfs 99.95 GB 99.95 GB linear /u01
/dev/sda1 500.00 MB xfs 496.67 MB 305.97 MB part /boot
---------------------------------------------------------------------------------------

Now check the swap space:
[root@darlin-vce-db ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -1

Hey, it's still 2GB!

Let's check fstab to get the swap mount-definitions: 
[root@darlin-vce-db ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon May 11 20:20:14 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/ol-root / xfs defaults 0 0
UUID=7a285d9f-1812-4d72-9bd2-12e50eddc855 /boot xfs defaults 0 0
/dev/mapper/ol-swap swap swap defaults 0 0
/dev/mapper/pool01-disk01 /u01 xfs defaults 0 0


Turn off swap:
[root@darlin-vce-db ~]# swapoff /dev/mapper/ol-swap

And (re-)create new swap:
[root@darlin-vce-db ~]# mkswap -c /dev/mapper/ol-swap
0 bad pages
mkswap: /dev/mapper/ol-swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 10485756 KiB
no label, UUID=843463de-7552-4a73-84a6-761f261d9e9f

Then enable swap again:
[root@darlin-vce-db ~]# swapon /dev/mapper/ol-swap

And check swap again:
[root@darlin-vce-db ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 10485756 0 -1

Yes!!! That did the job. Easy does it...

LVM with SSM on OL7

Tue, 2015-05-12 02:53
Or how to  encrypt your title with acronyms...

Today I wanted to create a VM with an Oracle SOA/BPM Suite 12c installation, since I'm to give a workshop on the installation of it. I used Oracle Linux 6 for my installations and the last few years I did play around quite a lot with it (for someone who is not a core systems administrator), to upgrade all my VM's to the latest update, remove obsolete kernels, add volumes to do installations, etc. I used Oracle database 11g, that in the last few monts I upgraded to the latest patch set of 11gR2 11.2.0.4.

I could do with a OL6U6 VM with that upgraded 11gR2 database, I did a upgrade of a quite clean VM only yesterday. But since OL7 is in the field already, and DB12c even for a few years. So I thought to try my luck with that.

However, I found that OL7 behaves quite different compared to OL6. Gnome is different, but tools like Logical Volume Manager are absent.  I found that there is no graphical LVM available in OL7 apparently. Since I'm not the only one that sought for it in vain, I assume it's really not there. By the way: there is a disks tool, but that only allows you to format a bare disk, not to create LV's.

Luckily I found this great article on a new tool from Red Hat: the system storage manager (ssm). Apparently it is open source, since you can find it on sourceforge, and it is available for Oracle Linux as well.

Install ssm Yep, you need to install it first:
$ sudo yum install system-storage-manager
Or do it as root (I'm didn't setup sudo for my one-user-virtual-course-environments):
[root@darlin-vce-db ~]# yum install system-storage-manager
By the way: system-config-lvm, the LVM in previous OL's, is apparently deprecated.

List volumesFirst list the current devices and volumes using 'ssm list':
[root@darlin-vce-db ~]# ssm list
-----------------------------------------------------------
Device Free Used Total Pool Mount point
-----------------------------------------------------------
/dev/sda 20.00 GB PARTITIONED
/dev/sda1 500.00 MB /boot
/dev/sda2 40.00 MB 19.47 GB 19.51 GB ol
/dev/sdb 100.00 GB
-----------------------------------------------------------
-------------------------------------------------
Pool Type Devices Free Used Total
-------------------------------------------------
ol lvm 1 40.00 MB 19.47 GB 19.51 GB
-------------------------------------------------
-------------------------------------------------------------------------------
Volume Pool Volume size FS FS size Free Type Mount point
-------------------------------------------------------------------------------
/dev/ol/root ol 17.47 GB xfs 17.46 GB 12.81 GB linear /
/dev/ol/swap ol 2.00 GB linear
/dev/sda1 500.00 MB xfs 496.67 MB 305.97 MB part /boot
-------------------------------------------------------------------------------
As you can see, I added a new disk to my VM, that is listed as /dev/sdb.  And you can't find it in the volumes, because I didn't do anything with it yet.
 
Add new LV mounted on /u01 In the past, you needed to perform quite some steps to create a volume: you had to prepare a disk, create a volume group, add a volume to it, assign space to the volume, make a filesystem on it, and mount it.

Now, here's where ssm pays off. Let's first create a folder to use as a mount point.
[root@darlin-vce-db ~]# mkdir /u01
I picked up the name of this mountpoint  during my Oracle days, with my first steps on Linux. But I can't remember what the story or rationale is behind 'u01'. However, it works for me, and it shows up in the Oracle doc, so I stick with it.
Now, lets create a volume called disk01, on a pool called pool01 with /dev/sdb assigned to it, and let's create the new default filesystem xfs on it. Oh, and my SDB was created with a size of 100GB:
[root@darlin-vce-db ~]# ssm create -s 100GB -n disk01 --fstype xfs -p pool01 /dev/sdb /u01
Not enough space (104853504.0 KB) in the pool 'pool01' to create volume! Adjust (N/y/q) ? Y
Logical volume "disk01" created.
meta-data=/dev/pool01/disk01 isize=256 agcount=4, agsize=6553344 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=26213376, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=12799, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

Apparently this could be done in one go. Since the 100GB of the disk does not match exactly the 100GB asked for the volume, it asked to adjust it.

Now do a list again
[root@darlin-vce-db ~]# ssm list
--------------------------------------------------------------
Device Free Used Total Pool Mount point
--------------------------------------------------------------
/dev/sda 20.00 GB PARTITIONED
/dev/sda1 500.00 MB /boot
/dev/sda2 40.00 MB 19.47 GB 19.51 GB ol
/dev/sdb 0.00 KB 100.00 GB 100.00 GB pool01
--------------------------------------------------------------
-----------------------------------------------------
Pool Type Devices Free Used Total
-----------------------------------------------------
ol lvm 1 40.00 MB 19.47 GB 19.51 GB
pool01 lvm 1 0.00 KB 100.00 GB 100.00 GB
-----------------------------------------------------
---------------------------------------------------------------------------------------
Volume Pool Volume size FS FS size Free Type Mount point
---------------------------------------------------------------------------------------
/dev/ol/root ol 17.47 GB xfs 17.46 GB 12.81 GB linear /
/dev/ol/swap ol 2.00 GB linear
/dev/pool01/disk01 pool01 100.00 GB xfs 99.95 GB 99.95 GB linear /u01
/dev/sda1 500.00 MB xfs 496.67 MB 305.97 MB part /boot
---------------------------------------------------------------------------------------

Here you find that there is now a pool called 'pool01', with a volume  named 'disk01', mounted on /u01.

To List filesystem on '/u01' issue the command 'df /u01':
[root@darlin-vce-db ~]# df /u01
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/pool01-disk01 104802308 32928 104769380 1% /u01

 I want to have it added to the /etc/fstab, to have it auto mounted. So edit the file as follows:
[root@darlin-vce-db u01]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon May 11 20:20:14 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/ol-root / xfs defaults 0 0
UUID=7a285d9f-1812-4d72-9bd2-12e50eddc855 /boot xfs defaults 0 0
/dev/mapper/ol-swap swap swap defaults 0 0
/dev/mapper/pool01-disk01 /u01 xfs defaults 0 0


I duplicated the first line, with /dev/mapper/ol-root, to the end of the file, and renamed the device according to the filesystem listing of /u01 above. And the mountpoint to /u01 of course.
Create group oinstall and add it to oracle I want to use the new volume for my Oracle installations. So first lets create the group oinstall and add it to oracle:
[root@darlin-vce-db u01]# groupadd oinstall
[root@darlin-vce-db u01]# usermod oracle -G oinstall --a
[root@darlin-vce-db u01]# groups oracle
oracle : oracle oinstall
Then add an app folder and make oracle owner of it
[root@darlin-vce-db ~]# cd /u01
[root@darlin-vce-db u01]# mkdir app
[root@darlin-vce-db u01]# chown oracle:oinstall app
ConclusionThat wasn't too hard, was it? Following the article mentioned earlier, you can add disks to a volume about as easy. Now, I'll be off to try to install DB12c...

No space left on device...

Wed, 2015-05-06 09:20
Today I ran into something curious, that I saw a few weeks ago on a training that I gave: the root filesystem  ran full (Oracle Linux 6). At first I did not find anything that caused the problem, but the command 'df -k' indeed suggested a full root filesystem. Using 'du -sh /home/oracle' we found that that folder consumed an unreasonable amount of space. In my case today I found the same. It turns out that there are 2 hidden files that were the problem:

[oracle@darlin-vce-soa ~]$ ls -al
...
-rw-------. 1 oracle oinstall 4488290304 May 6 16:09 .xsession-errors
-rw-------. 1 oracle oinstall 19752 May 4 16:47 .xsession-errors.old
[oracle@darlin-vce-soa ~]$ rm -rf .xsession-errors
[oracle@darlin-vce-soa ~]$ rm -rf .xsession-errors.old 
 
As you can see the .xsession-errors file is terribly large, in the training we found that it was the .old file. Actually it turns out that these files are rolling errors-logs of the output of applications that use a graphical interface. In this case it logs amongst others the output of JDeveloper, and my grow very large due to java-exceptions. So in case of a regular exception raised by JDeveloper, you might want to keep these files 'in the eye'.

You can savely remove those files, to save up space. But if they have grown that big, you might want to tail those to see what causes the problems.

Another tip might be to remove old kernels: when upgrading to a new kernel, Oracle Linux keeps the old kernel files. You can find a description to remove those here.

Oracle Linux 6: Remove Obsolete Kernels

Fri, 2015-03-13 12:50
I have several Virtual Machines for our Virtual Course Environments. From time to time, I do an upgrade of the Oracle Linux version. But with every upgrade, Oracle Linux leaves the old kernel files. And in time the root disk is cluttered up. So I want to remove the old kernels. With a little googling, I came up with a discussion thread in Oracle Communities: Oracle Linux Remove Old Kernels (Archived by now).

To me this was quite helpfull. Let me sum up the steps here.

1. List the kernels in the boot menuFirst list the kernels in the boot menu with:
#cd /boot/grub
#cat grub.conf
In my example VM this is:
[root@darlin-vce-db ~]# cd /boot/grub
[root@darlin-vce-db grub]# cat grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_darlinvce-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Oracle Linux Server Red Hat Compatible Kernel (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_darlinvce-lv_root rd_LVM_LV=vg_darlinvce/lv_root rd_LVM_LV=vg_darlinvce/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us-acentos nomodeset rhgb quiet crashkernel=auto numa=off
initrd /initramfs-2.6.32-431.el6.x86_64.img
title Oracle Linux Server (2.6.32-279.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg_darlinvce-lv_root rd_LVM_LV=vg_darlinvce/lv_root rd_LVM_LV=vg_darlinvce/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us-acentos nomodeset rhgb quiet crashkernel=auto numa=off
initrd /initramfs-2.6.32-279.el6.x86_64.img
title Oracle Linux Server-uek (2.6.32-100.34.1.el6uek.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-100.34.1.el6uek.x86_64 ro root=/dev/mapper/vg_darlinvce-lv_root rd_LVM_LV=vg_darlinvce/lv_root rd_LVM_LV=vg_darlinvce/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us-acentos nomodeset rhgb quiet numa=off
initrd /initramfs-2.6.32-100.34.1.el6uek.x86_64.img
title Oracle Linux Server (2.6.32-131.0.15.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-131.0.15.el6.x86_64 ro root=/dev/mapper/vg_darlinvce-lv_root rd_LVM_LV=vg_darlinvce/lv_root rd_LVM_LV=vg_darlinvce/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us-acentos nomodeset crashkernel=auto rhgb quiet numa=off
initrd /initramfs-2.6.32-131.0.15.el6.x86_64.img
The newest kernel (Oracle Linux 6 Update 5) is at the top. Apparently in my case I have the following kernels:
  • 2.6.32-431
  • 2.6.32-279
  • 2.6.32-100.34.1
  • 2.6.32-131.0.15
Let's make sure I have booted using the latest kernel:
[root@darlin-vce-db grub]# uname -r
2.6.32-431.el6.x86_64
So indeed Linux is started using the 2.6.32-431 kernel.
2. Remove obsolete kernelsLet's remove the last 3 one by one.
But before you do so, make a backup of the grub.conf, because the removal of the kernels may update your grub.conf and remove the newest kernel. Then you end up starting up a dated kernel version.

To list the kernel packages of one version:
[root@darlin-vce-db grub]# rpm -qa | grep kernel|grep 100
kernel-uek-2.6.32-100.34.1.el6uek.x86_64
kernel-uek-headers-2.6.32-100.34.1.el6uek.x86_64
kernel-uek-devel-2.6.32-100.34.1.el6uek.x86_64
kernel-uek-firmware-2.6.32-100.34.1.el6uek.noarch

Now to remove these packages use yum remove:
[root@darlin-vce-db grub]# yum remove kernel-uek-2.6.32-100.34.1.el6uek.x86_64  kernel-uek-headers-2.6.32-100.34.1.el6uek.x86_64 kernel-uek-devel-2.6.32-100.34.1.el6uek.x86_64 kernel-uek-firmware-2.6.32-100.34.1.el6uek.noarch
Loaded plugins: refresh-packagekit
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
....
Dependencies Resolved

=====================================================================================================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================================================================================================
Removing:
kernel-uek x86_64 2.6.32-100.34.1.el6uek @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 86 M
kernel-uek-devel x86_64 2.6.32-100.34.1.el6uek @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 22 M
kernel-uek-firmware noarch 2.6.32-100.34.1.el6uek @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 3.9 M
kernel-uek-headers x86_64 2.6.32-100.34.1.el6uek @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 2.2 M
Removing for dependencies:
audit-libs-devel x86_64 2.2-2.el6 @anaconda-OracleLinuxServer-201206261930.x86_64/6.3 70 k
compat-gcc-34 x86_64 3.4.6-19.el6 @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 13 M
compat-gcc-34-c++ x86_64 3.4.6-19.el6 @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 84 M
compat-gcc-34-g77 x86_64 3.4.6-19.el6 @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 5.9 M
compat-glibc x86_64 1:2.5-46.2.0.1 @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 6.4 M
compat-glibc-headers x86_64 1:2.5-46.2.0.1 @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 1.9 M
gcc x86_64 4.4.7-4.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 19 M
gcc-c++ x86_64 4.4.7-4.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 11 M
glibc-devel x86_64 2.12-1.132.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 966 k
glibc-headers x86_64 2.12-1.132.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 2.0 M
libcap-ng-devel x86_64 0.6.4-3.el6_0.1 @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 14 k
libcgroup x86_64 0.40.rc1-5.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 321 k
libcgroup-devel x86_64 0.40.rc1-5.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 89 k
libtool x86_64 2.2.6-15.5.el6 @anaconda-OracleLinuxServer-201105261616.x86_64/6.1 1.9 M
oracle-rdbms-server-11gR2-preinstall x86_64 1.0-7.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 32 k
perl-Archive-Extract x86_64 1:0.38-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 52 k
perl-CPAN x86_64 1.9402-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 663 k
perl-CPANPLUS x86_64 0.88-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 767 k
perl-ExtUtils-CBuilder x86_64 1:0.27-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 59 k
perl-ExtUtils-Embed x86_64 1.28-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 17 k
perl-ExtUtils-MakeMaker x86_64 6.55-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 608 k
perl-ExtUtils-ParseXS x86_64 1:2.2003.0-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 61 k
perl-File-Fetch x86_64 0.26-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 46 k
perl-IPC-Cmd x86_64 1:0.56-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 57 k
perl-Module-Build x86_64 1:0.3500-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 460 k
perl-Test-Harness x86_64 3.17-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 399 k
perl-Test-Simple x86_64 0.92-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 184 k
perl-core x86_64 5.10.1-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 0.0
perl-devel x86_64 4:5.10.1-136.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 1.8 M
redhat-lsb x86_64 4.0-7.0.1.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 0.0
redhat-lsb-compat x86_64 4.0-7.0.1.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 0.0
redhat-lsb-core x86_64 4.0-7.0.1.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 22 k
redhat-lsb-graphics x86_64 4.0-7.0.1.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 0.0
redhat-lsb-printing x86_64 4.0-7.0.1.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 0.0
systemtap x86_64 2.3-3.0.1.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 46 k
systemtap-devel x86_64 2.3-3.0.1.el6 @anaconda-OracleLinuxServer-201311252058.x86_64/6.5 4.9 M

Transaction Summary
=====================================================================================================================================================================================================
Remove 40 Package(s)

Installed size: 270 M
Is this ok [y/N]: y

Answer with 'y', and wait until the removal is complete.
Repeat this for the other kernels as well.
3. Edit the grub.conf and last refreshmentsEdit the grub.conf and remove the entries all the removed kernels, leaving only the entry of the latest kernel:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_darlinvce-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Oracle Linux Server Red Hat Compatible Kernel (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_darlinvce-lv_root rd_LVM_LV=vg_darlinvce/lv_root rd_LVM_LV=vg_darlinvce/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us-acentos nomodeset rhgb quiet crashkernel=auto numa=off
initrd /initramfs-2.6.32-431.el6.x86_64.img
For each entry the line starting with 'title Oracle Linux Server...' is the first line of the entry.
After editing the grub.conf, you can reboot the server. If you're running inside an VirtualBox image, update the Virtualbox Guest Additions. I find it convenient to backup the VBoxGuest additions disk to a folder on one of the disks. When you update the VM with a new Linux Version, the guestadditions aren't compiled with the latest kernel anymore. Then XServer might not come up again, and mounting the guestadditions disk might not work. Then it is convenient to have a copy within the VM available to do a recompile from the console.
4. Re-install kernel-dependent pacakgesI found that tools like gcc, gcc-c++, etc. are removed at removing my first kernel. You can use yum to re-install them, using yum install , eg. yum install gcc. Yum will figure out the depencencies for you. What I re-installed was:

yum install gcc gcc-c++ glibc-devel glibc-headers perl kernel-headers compat-gcc-34 compat-gcc-34-c++ compat-gcc-34-g77 compat-glibc-headers libcap-ng-devel libtool systemtap systemtap-devel
These packages were installed and needed because of Oracle Database and Fusion Middleware. Also the VirtalBox Guest Additions need some of those.

2015 OPN FMW Partner Forum: the coolest thing

Sat, 2015-03-07 06:06
This week I attended the Twentieth Oracle Partner Network Fusion Middleware Forum, this year in the Boscolo Hotel in Budapest, Hungary.

It was a great event, where a lot of subjects were covered, a lot of great people met. According to one of the product managers we were the smartest Oracle Region in the world (let's not uncover who said that...)

We've seen a lot of cool stuf. Let me try to put up a list. But it can't be anywhere near to complete.

The first day, tuesday the 3th there were some nice keynotes. With pretty interesting stuf, although it was a little dissapointing to here that Oracle's focus on BPM 12c the upcoming year or so, is on quality. Of course that's a good thing, but I concluded that it means that on the functionality side it's going to be quite silent. And that is a pity since they pushed very hard on ACM (Adaptive Case Management)  last 2 years. It means as well, I think, that ACM is not going to get in to the Process cloud for quite some time. And also that is 'not so cool', since I think ACM could be an important driver for the Process Cloud Services. Quite uncool thus.

What was very cool was the demo on Internet of Things, and the Stream Explorer. Also nice was the presentation on API catalog. Very cool, as always, was the presentation/demo on Mobile Application Framework, and Mobile Cloud Services, by Grant Roberts.

About Sub-zero-cool was the duo-hack&tation of the Rest/JSON support of 12c together with Mobile Application Framework by Lucas Jellema and Luc Bors. Great job guys.

But the coolest things weren't amongst these. Not even the presentations we aren't allowed to blog and tweet about. Not even the workshops we did that were so secret, that we were driven to the Oracle office and I can't remember how many times we were pressed not to tweet and blog about it and how many times we were told to delete the VM's afterwards.

Not even the great venue of the Bosocolo Luxury Residence:
 
No, to me, amongst the 2 coolest things was the run  I did on wednesday:



Which I started at the hotel, then ran right to the Donau, where there is this Island, that has an Atletics  area. Did a little round there and went back. It's about 7.5 to 8km. Unfortunately I did not time it, I think I did it in about 40 to 45 minutes.
But really the coolest thing was the final run I did today:

 The Pest-Buda-Pest run, where I crossed the Donau over the same bridge that I ran to on wednesday, then along the Donau, passing the castle and other very beautiful buildings and then cross the Donau again 2 bridges more to the south. I did this 9 km. in about 51 minutes: My avarage heart-rate:

And the Calories I compensated on the diners:


And here my euforic proof that I really did the run:
 This was really the greatest moment of the week. In one and an half hour I'm of to the airport, nothing I see of do in the next hours can compete this!

Thanks J├╝rgen for the great week, next year I definately bring my running shoes again.









API Catalog 12c is here

Fri, 2015-03-06 02:27
You do create services right? And your service portfolio grows and grows does it? Are they used by others? And do you know what services are already there in your organization? Oh, right, you did build up a list using Excel, didn't you? Of course, that's what I would do.

Unless I had a license on Oracle Enterprise Repository. Since then I already was alowed to use API Catalog.
 
Actually, I thaught the AIA11g training several times. And one of the  parts is harvesting your services into Oracle Enterprise Manager. Where you can do impact analasis on your services. It relates xsd's, wsdl's, composites (both EBS and ABCS) and interrelates them with eachother based on the AIA taxonomy. OER supports governance from the conception of services to the use in production of them. API Catalog does not support this whole lifecycle governance, but often that is to much for a customer. I would say, to me as  a developer/architect is would be. But API Catalog would help me to build up a light weight portfolio of my services at a customer.

I recognized OER bits and pieces and API catalog indeed uses that. It allows you to do a harvesting of your services from OSB and SOASuite using (about) the same harvesting scripts that are recognized from AIA.

This week on the OPN FMW Partner Forum 2015, I learned that many things we know from AIA11g are (going to be) build in the different products like SOASuite, the API/OER suite, etc. You could compare that to how things went with Oracle Designer and Headstart for Designer.

Other products in the API suite are:
  • Oracle API Manager is an addon to Service Bus. Is a Developer portal for Oracle Service Bus.
  • Oracle API Gateway is an OEM-ed product targeted to the DMZ to manage access to your services/API's and also has some API Management functionallity in its self.
 For now please install Catalog and harvest your services. Then you can copy and paste the descriptions from your Excel sheet or Wiki into API Catalog and in a later stage reuse them in API Manager. Then throw away your Excelsheet....


BPM12c Quickstart "invalid oramds url" solved; recommended patches

Wed, 2015-02-25 01:53
A few weeks ago I mentioned that I ran into a bug relating an invalid MDS url while trying to create an XSL based on the Case.xsd.

Just this morning got a notification on my Service Request that there is a patch for an invalid MDS url while creating an XSLT based on the Case management XSD: 19775314. There are two versions of the patch: one for the  12.1.3.0.0 and one for 12.1.3.0.1 for homes that have the bundle patch applied.


I tried the second one on my BPM QuickStart home that was patched with the bundle patch.

So currently the recommended patches on the BPM QuickStart are:
  • 20163149: (dataobject assignment lost after dehydration), this is mentioned as a prerequesite to the bundle patch, as alternative to the wrongly mentioned patch in the Readme.
  • 19707784: SOA Bundle Patch 12.1.3.0.1
  • 20440332: Initiator task form does not shown up on workspace and task is auto approved
  • 19775314: java.lang.IllegalStateException: Invalid url ERROR WHEN CREATING TRANSFORMATION (Patch) 
  • 19706799: db adapter wizard mappings and xsd file creation does not trigger event in win (Patch); choose the 12.1.3.0.1 version.

BPM 12c BundelPatch1: InitiatorTask problem: Solved!

Tue, 2015-02-17 05:23
Lately I wrote about the release of the BPM12c Bundelpatch 1 and the problems regarding Initiator tasks we were having: BPM 12c BundelPatch1: InitiatorTask problem.

I created a service request for it and now there is a patch for it: BPM 12c BP interim patch #20440332
This patch must be applied after applying the BundelPatch and it's recommended prereq-patch (p20163149).

The patch 20440332 is official hence for public download. With this patch it works for us.

Thanks to Gucci for his support.

Oracle SOASuite UMS: Deregister obsolete Messaging Client applications

Mon, 2015-02-16 02:38
There are already several blogs on how to receive and send email using the UMS email adapter. A few good starting points that use GMail as a provider are the ones written by our respected con-colleagues of Amis:
So I won't bother to do a how-to on that on my account. Although I manged to get that working with a local Exchange setup.

What I managed to do is to read e-mail and then process it to upload the attachments and body using BPEL and java in a Spring-Context to Adaptive Case Management. If you want to do something similar make sure you install the patch 18511990 for fetching the attachment-properties and -content, since without the patch the properties for inline attachements are not written properly to the soa-infra database. See my earlier blog-posts here and here.

Having it all setup and playing around with it, you might end up in the situation that the service won't listen to the actual email-address you reserved for it, as I did. This might be the case when you change the email address in your receiving adapter component in the composite. Or after deploying several versions of the composite, especially with different addresses.

It turns out that there is a panel to deregister Messaging Client Applications to cleanup the mess.
First go to the Enterprise Manager and under the Weblogic Domain navigate to the 'usermessagingserver' (there are also entries for the different usermessagingdriver's, but in this case you need the server itself):
 Right click on it and in the pop-up choose 'Messaging Client Applications':
 Here the registered Messaging Client Applications are registered with the particular endpoints.
In our case all the activation agents of the polling inbound email adapters are registered here and it the situation might occur that the composites are listening to wrong addresses. So select those you don't want anymore, and click on the De-register button.
You might need to re-deploy your composite and edit the component for the inbound email to have it listening to the proper address set-up for the particular environment (development, test, accepetance, production). And then it shoud work. Maybe a server restart is necessary to have the proper activation agent(s) started (and the unwanted shutdown).