Monday 25 August 2008

Mount NTFS-Formatted USB Disk in Open Suse 10.3

I had a little trouble with mounting an NTFS. When I add this disk and open the file-browser I got a error that it was of a bad format.
For another disk I created a filemount and an entry in the /etc/fstab:
mkdir /Maasland
chown root:users /Maasland
chmod g+w /Maasland

And then in /etc/fstab:
/dev/disk/by-id/usb-ST340083_2A_344E46304B423244-0:0-part1 /Maasland       ntfs-3g    user,users,gid=users 0 0

This way I had to do a mount /Maasland each time I plugged in the disk.

I stumbled upon a similar question on the OpenSuse forums. First there was a tip to do:
mount -t ntfs-3g /dev/sdb1 /home/user 
But that is basically the same as I did. And you still have to do an explicit mount every time you plug it in.

But there was another tip:
cd /sbin
su -c 'ln -s mount.ntfs-3g mount.ntfs'

And this enables that the disk is "auto mounted" and direct ready for use.
This is so simple and brilliant that I wanted to share it with you. Also to log it for myself for future use (in case I reinstall my laptop for any reasons).

Thanks to "oldcpu" on OpenSuse Forums. I hope you don't mind me sharing this.

Another remark: if you have used the disk with a Windows machine, don't forget to explicitly stop the disk using "savely remove hardware". If you don't, the disk is marked in use by Windows and Linux won't use it. This is (in my opinion) not a bug, Linux does not violoate the access-rights that apparently are set on the disk at attaching it to Windows. Solution is simple: attach the disk to any Windows machine and stop the disk, then attach it to your Linux system.
Apparently Windows is not as strickt as Linux is.

Thursday 21 August 2008

Install Oracle SoaSuite 10.1.3.3 on Oracle Enterprise Linux 5.0 and against Database 11gR1

Yesterday I installed the Oracle Database 11gR1 for the first time. I realize that I'm not quite the first one since the database is allready available for over a year. But I did not find a quick step-by-step guide that covers it all.

About the same counts for installing the SoaSuite 10.1.3.3. On the eve of the release of 11g (will it finaly be launched at Open World in September?), I give you this install guide for the SoaSuite on Oracle Enterprise Linux and against the 11gR1 database. Since 10g is used pretty much I think it will be around for a while.

The installation fo the SoaSuite is pretty much straight forward. But there are a few prerequisites to meet.

11g Database
To work with an 11g database there are 2 things to do:
  • Download patch 6265268 for the Oracle Universal Installer to work with DB11g. Apparently the OUI has two older libraries that do not work properly with DB11g. Unzip the patch and copy the files to the proper directory on the installation disk (so if you have a real CD, or an ISO with the installation you should copy the contents to a directory on a harddrive). The readme denotes the files and their destination. I found a little mismatch in the foldernaming of one of them, my installation disk had a slightly different version number in the path.

  • Edit the irca.sh. The irca.sh that has to be run for creating the SoaSchema's in the database refer to the jdbc libraries of the database home. It expects a ojdbc14.jar, but this one does not exist in the 11g home. But I found it works fine with the ojdbc5.jar that does exist. So edit the irca.sh, search for ojdbc. You'll find an if-statement that checks for the existing of ojdbc14.jar. Uncomment it or change ojdbc14.jar to ojdbc5.jar. Search further for ojdbc to find the classpath and change it accordingly.
Oracle Enterprise Linux

Oracle Enterprise linux should also be adapted. First you should install the libXP package. I found it on Disk 2 of the OEL5.0 diskset.


rpm -ivh libXp.*version*.i386.rpm

or

rpm -ivh libXp-*

(I found that on my disk there is a hyphen '-' in stead of a dot '.' after LibXp)

The second thing to do I found in a doc on Metalink, where is stated that a library has to be replaced to get the HTTP server started.
The document is Note:465159.1 - "Oracle Application Server 10g (10.1.3) Requirements for Linux (OEL 5 and RHEL 5) "

The patch it is tacking about is Patch 6078836. This is a zip with a a special system library (libdb.so.2) which has to be replaced. In my case the original was not available (I had a libdb.so in stead of libdb.so.2), so I added it, having two versions together. So I don't know if it's really needed.

The installer

Then the Oracle Universal Installer won't start as is, since it does not recognize OEL as a valid OS. There are two options.

The simplest is adding the is starting runInstaller with the option '-ignoreSysPrereqs'. But you can also optain the patch 6339508 for the Oracle SOA Suite (10.1.3.1.0). It contains a prereq directory and a parameter file. The readme neatly states how the runInstaller has to be started.

The note:465159.1 also states that "The Oracle Application Server 10g Patch Set 3 (10.1.3.3) is required to be certified on OEL 5.x. This is available on OracleMetalink as Patch 6148874".

This is an Oracle Universal Installer that upgrades the SoaSuites and has the same problem as the SoaSuite 10.13.1 installer. For that Patch 6452684 is available that has only a parameter file. But you could easily also use the '-ignoreSysPrereqs' parameter.

If you want to install Oracle Webcenter, apparently about the same problems arise. So follow the Note 465159.1 to solve that.

Wednesday 20 August 2008

Installing Oracle 11g Database on Oracle Enterprise Linux 5.0

The last few years it occurred several times that I had to install a Oracle 10g database on Windows or Linux. I must say for demo, development, training or try-out purposes, in case you think that I'm a in-depth DBA.

For the same reasons I wanted to install a 11g this time, under a OEL 5 based VMware image. To be used for Soa Suite 10133, but that is a different story.

It turns out not to be a 1-2-3 job to do. Here is my step-by-step recipe with my findings.

Filemount
First create a directory 'app' on the filemount that you want to use (in my case /u01). And change the owner to oracle:
chown oracle:oracle /u01/app
Oracle recommends to create a separate user-group for the installation, called oinstall. But I did not do that.
Why /u01/app? The default oracle filestructure is *filemount*/app/oracle/product/*version_number*/*oracle_product*. So it turns out handy to have the path started with /app.

Packages
Check the following list of packages and install the ones you don't have. Although you might have choosen extra packages (like me), you probably miss some of them. Most of them you can find on disk 2 of the OEL disk set. But the Sysstat and UnixODBC-devel rpms are on disk 3.

To query the rpms, use
rpm -q *rpm-name*

To insall an rpm:

rpm -ihv *rpm-name*

You can have multple rpms the same time and the version number can be replace by an asterix. For example:

rpm -ihv binutils-2.*

The required list of rpm's:
  • binutils-2.17.50.0.6-2.el5
  • compat-libstdc++-33-3.2.3-61
  • elfutils-libelf-0.125-3.el5
  • elfutils-libelf-devel-0.125
  • glibc-2.5-12
  • glibc-common-2.5-12
  • glibc-devel-2.5-12
  • glibc-headers-2.5-12
  • gcc-4.1.1-52
  • gcc-c++-4.1.1-52
  • libaio-0.3.106
  • libaio-devel-0.3.106
  • libgcc-4.1.1-52
  • libstdc++-4.1.1
  • libstdc++-devel-4.1.1-52.e15
  • make-3.81-1.1
  • sysstat-7.0.0
  • unixODBC-2.2.11
  • unixODBC-devel-2.2.11

Kernelparameters
Check the kernel parameters using the install guide. Adapt the file /etc/sysctl.conf accordingly or use the following:
# Kernel sysctl configuration file for Oracle Enterprise Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295
#kernel.shmmax  = 2147483648

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456
#kernel.shmall = 2097152
# Semaphores
kernel.sem = 250        32000   100      128
# net
net.ipv4.ip_local_port_range = 1024    65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
With the file sysctl.conf you ensure that the changes are persisted at restart. But with the command
/sbin/sysctl -p
you can force that the parameters are applied to the running system.

Add Swap-space
My Virtual Machine had too little swap-space. With VMWare this is easily solved:
  • Shutdown the VM
  • In the VMWare Server Console, under virtual machine settings, add a hardisk of 3 GB (that should be enough, since it will be added to the existing swap) preallocated and not splitted (we delete it afterwards).
  • Startup the VM
  • As root issue the command "fdisk -l" to determine the added disk (in my case: /dev/sdc, the last one with no partitiontable and was 3GB in size).
  • Then run fdisk for the new volume: "fdisk /dev/sdc"
  • In fdisk, add a partition by choosing command n, partition p (primary), partition number 1, using defaults for fist and last cilinder.
  • Choose command w to write to the partition table. The fdisk tool will quit.
  • Create swap by issuing the command "mkswap /dev/sdc"
  • Enable the swap by issuing the command "swapon /dev/sdc"
  • Add the disk to the /etc/fstab (copy it from the existing swap disk entry) to make it available at restart:
    /dev/sdc swap swap defaults 0
Proceed with DB install.

Database Install

Run the installer from the install disk with ./runInstaller. In the installer I choose the advanced install, since I want to have a general purpose database using an AL32UTF8 character set. For my convenience I use 'welcome1' for every password (sys, system, etc.) but you're of course free to use a more secure one.

Database post install

Starting up my database gave an error like:

/u01/app/oracle/product/11.1.0/db_1/bin/ocrconfig.bin:
error while loading shared libraries:
/u01/app/oracle/product/11.1.0/db_1/lib/libnnz11.so:
cannot restore segment prot after reloc: Permission denied

Thanks to a blog at of a guy called Micheal Simons I solved it with the following script:

ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
chcon -t textrel_shlib_t $ORACLE_HOME/lib/libnnz11.so
chcon -t textrel_shlib_t $ORACLE_HOME/lib/libclntsh.so.11.1
chcon -t textrel_shlib_t $ORACLE_HOME/lib/libnque11.so
chcon -t textrel_shlib_t $ORACLE_HOME/lib/libsqlplus.so
Afterwards you could edit your /etc/fstab to remove the added swap disk and then bring down your VM to remove the disk in the VM settings.

Now my first 11g Database under Oracle Enterprise Linux 5 is running.

OpenSuse 10.3 Suspend to Disk breaks after Update

In Short:
After updating the DirectFB package the Splashy package is uninstalled. This breaks the suspend to disk functionality. Reinstalling the Splashy package again (and thus downgrading the DirectFB package), repairs the Suspend to disk.

Explanation:
Last weekend I worked away my backlog on optional updates for my OpenSuse 10.3 installation. Yes indeed, I'm not on 11, since my current installation works neatly. I've seen that Ubuntu can upgrade with the update-functionality. That would be nice for Open Suse too.

But anyway, doing this updating I hit a problem I had before and indeed solved before but forgot about. My suspend to disk functionality broke. Looking in the /var/log/pm-suspend.log learned that the libsplashy.so.1 library was missing. I looked it up in the Software Management, by looking for an rpm that provides this library. This turns out to be the Splashy package (A complete user-space boot splash system, version 0.3.3-45.2). So I installed it. Apparently it has a dependency on the DirectFB package ( a graphical library for FrameBuffer devices), version 1.0.0.-66, while the available version is: 1.1.1-32.1.

My conclusion:
Updating DirectFB makes the Splashy package apparently obsolete. That is, it seems that the repository finds that. Installing Splashy downgrades DirectFB. So the DirectFB optional update should not be accepted if Suspend to disk is a desired functionality.

My Suspend to disk works again, fortunately. I'm glad, since it saves me some minutes when I leave my work for the train. Having me back working in the train in a minute.

Monday 18 August 2008

Hibrid Process Management

Last week I started my investigation on the Oracle BEA acquisition. It's still developing, since I have some questions. But I do have some thoughts.

One of the things I wrote about are my questions around the BPA and BPM suites and also about the Process Engines, since I fugured that for the process engine Oracle would choose BPEL as it would choose BEA's aqualogic for the ESB, as would be suggested in page 56 from Thomas Kurian's presentation:Here you see that only the Oracle BPEL Process Manager is shown. This page does not name the process engine of BEA and would suggest that Oracle BPEL PM is considered to be the main engine.

But thinking and discussing it through I think I must conclude that Oracle is going to do it the Toyota Prius way: having two engines in the same car.

In the same presentation of Thomas Kurian I read on page 60 about the converged process manager:

So the converged Process Manager as I read it now will contain the BPMN engine from BEA and the BPEL PM engine from Oracle (Collaxa). And this enables you to tank your fuel from both Shell as well as Essent/Nuon. The advantage of this is that the BPA Suite could still generate BPEL Blueprints and work the way it works now, fuelling the BPEL engine through the jDeveloper BPEL Designer. And the BPM suite can fuel the former BEA-AL BPMN-engine.

This keeps me wondering about the Enterprise Service bus. Many do expect Oracle to replace the Oracle ESB in favor of the Aqua Logic Service Bus (AL-SB). Maybe enhanced with some nice features of Oracle ESB. But the SOA Product Offering talks about a "Unified ESB" combining both AL-SB and OESB.
Would that then be the Honda Hibrid of the Soa Suite? Because our customers that are using Oracle ESB for the past about two years have their Oracle ESB jDeveloper projects. And these probably are not deployable to the AL-SB (AquaLogic Service Bus) or visa versa. We're propagating Oracle ESB for I think two and a half years now. And of course our customers are listening properly to us, so they're using Oracle ESB massively. I know for example of a customer that is only using the ESB part of the SOA Suite as a successor of InterConnect. Though it may not be as large as the customer-base of AL-SB (I actually don't know about the ration in marketshares), we don't want to throw that away, don't we?

Maybe this converged ESB is also having two engines (like the converged BPM-engines) or at least built in a way that it would support both the jDeveloper ESB projects as well as the AquaLogic Workshop ESB projects. In that case it would more be a car with a 3th generation LPG-installation: one engine that can be fuelled with regular lead-free gas (as in benzin) as well as LPG (Liquified Petroleum Gas also known as liquid propane gas).

A project-colleague pointed me to an article of Bruce Silver on the diffference between BPEL and BPMN/XPDL. He also pointed me to this more academic comparison (pdf).

Sunday 17 August 2008

Second release XML Editor

You won't get another version of Mozilla Firefox or Thunderbird as fast as another release of my XMLEditor. But at the other hand, it might not be for long that the release frequency of Mozilla beats mine. Anyway I couldn't help hacking a little on my editor.

It struggled me that the element-content was not editable properly. So I added a button "add text node". It will add a text node with a default text "Node Text". This text is editable in the child-elements-table when selecting the parent node.

Besides that I added toolbar buttons for new file and save file.

The new version is downloadable here.

Friday 15 August 2008

First release XML Editor

The last few weeks around my vacation, in my "in-between-hours" I created a light-weight XML Editor. As you could have read before, earlier I created an XML editor in Java Swing to test XPath expressions and XSLT's. But I lacked a nice editor to build up your xml files.

For my bookmarks I created an xml file with an xslt-stylesheet that transforms the xml to an html-page with poplists where you can choose a link, hit a button and it the browser will show you the page. Windows has a nice feature (from Windows 98, I think) that's called the Active Desktop. You can place links to html pages on your desktop and Windows will embed the page into your desktop. I used that to show my poplists right on the desktop. That's one feature that I miss in KDE at the moment. KDE seems to have such a possibility, but I could not get it working. Also Windows can have multple pages on your desktop and you can denote the area where to show this page.

Anyway, the xml-file I had to edit with a ascii-editor. Notepad++ would do the job nicely. There are applications as XMLSpy (which needs a license) or jDeveloper (which is too big for the job) that can help you. These packages are smarter then mine, since they're able to take an XSD and let you edit the xml according to the XSD. Also in the past I saw xml editors (I remember one called Peter's XML Editor). But they're nearly allways only for Windows (as the XTrans-tool that drove me to create the XMLTester tool). Having it in Java makes it portable to both platforms.

Another thing is that XML is by nature Hierarchical. So I would like to browse through my XML hierarchically and then edit the parts I want to change.
Besides that, it seems a nice project to explore Swing components like the JTree and the JTable and play with DOM to change the xml. So it'll give me a little more "Fingerspitzengefuhl" with the java DOM api's. In the past I had this with the Pl/Sql dom-api's of the database.

Yesterday I finished my first version. You can download it here. Just unzip it to a directory.
To run it I added a shell script (for Linux) and a bat file (for Windows). You'll have to edit it to change the path to your JRE (Java Runtime Environment).

It's very basic in it's functionality. But I think it's pretty straightforward and intuitive. You can start it with the xmlfile as a parameter to the script. I did that to have a link on my desktop to edit my LinkLists-xml-file. Then it will parse and process the file given. But of course you can also open the file with the open button and create a new file with the File-new Menu option.
To create a new xml file you have to give in a node name that is used for the root node.

Of course this little app might need some improvements. One of them is that I changing a node value does not behave like I expect. It's not so that a node value is seen back in the file when saved. Probably I have to explore that a little more. But adding and changing attributes, adding and copying nodes work fine. The copy node does not copy a complete node but just creates a node on the same level with the same name. I could add functionality that really copies a node tree.

Another thing I'd like to do is to integrate this into my XML Tester tool. Then I have a little "suite" to create, edit and test XML files with XSLT's.

I hope you enjoy it and find it usefull. If you have comments, ideas for improvements, feel free to post them. Since I have to do it in the scarce, free time I have I can't do promises on the proposed changes.

Wednesday 13 August 2008

Oracle BPM Suite vs. BPA Suite

Yesterday I still had some questions in my article about the Oracle BEA acquisition. One of them being the mist I had between Oracle's BPA Suite and the BPM suite. There is however a pdf of the presentation that belongs to the webcast of Thomas Kurian. It can be found at: http://www.oracle.com/products/middleware/docs/oracle-middleware-strategy-briefing-072008.pdf. In the pdf is stated that:
  • BPA suite is meant for rigorous process modelling
  • BPM suite is meant for agile process modelling
So that clears things up, right?
If it does for you, you may explain to me what Oracle means by "rigorous" and "agile", why should I put (more) energy in learning BPA Suite, and why is Oracle spending money in closing the life-cycle-wheel in the BPA Suite-BPEL-BAM round trip? It's kind of contraditory I think: BPA Suite for rigorous process-models generating BPEL bleu-prints that is clearly meant for a SOA and one of the main drivers for SOA is having agile enterprice business processes.

I think I have a feeling about BPA suite and the use of it in larger enterprises and having business process modelled that are not that agile. That turn out to be more rigid.
But is there an enterprise that is going to use both suites? Doing their "rigid" business processes in BPA en the agile in BPM both generating BPEL for the "Converged" process engine? I would not think so, but I'm probably not so visionary as the Oracle VP's are. Probably you would use one of the two suites and if you choose for BPA suite, the more agile processes that you don't design with BPA, you probably design and build directly in BPEL Designer in combination with good old MS Word/OpenOffice Writer.

Monday 11 August 2008

Back at the front: Oracle-BEA

Today I returned from my vacation and one of the things to start with was to dive into the Oracle BEA material.

So I listend to the podcasts of Thomas Kurian (Oracle's Vice president on Fusion Middleware) on http://www.oracle.com/products/middleware/bea.html, dated juli 1st 2008. He talked about Oracle's strategy to integrate the BEA products in the Oracle FMW product lines.

I created an exerpt from this podcast.

Oracle's strategy is to create a complete Suite of Middleware for building, deploying and managing applications on SOA. Thomas is apparently a three-pointer-guy. He talked about:

  1. Common middleware customers asked to bring the products together

  2. Oracle wants to broaden sales and distribution channels

  3. Oracle and BEA have very complementary product-sets and adoption of customers in industries and geographies.

So they come with a combined product roadmap.

  1. BEA and Oracle have complementary products: BEA has a JVM, Transation Monitoring, Security products. Oracle has Business Inteligence, Identity Management, Content Management products. This is very simple: these products are going to be co-exist.

  2. There where there is overlap: BEA and Oracle already interoperate, and will enhance the interoperatability of products based on Oracle's hotplugable strategy.

  3. There will be specific decisions on certain overlapping products. For example BEA's and Oracle ESB products are brought together. In this case it will mean that BEA's ESB will be promoted.

Tuxcedo is considered to be an important asset. Oracle will enhance it significantly. Broadening the number of supported OS's. Integrating with Soa Infrastructure and integrating more tighly with 11gDB Grid/RAC.

Weblogic will be Oracle's strategic Java Server, with another 3-pointer:

  1. All FMW technology that is already supported on Weblogic 9.x, will be certified on the new Weblogic 10.3.

  2. Integrating number of features of Oracle AS in Weblogic: Object Relation Modelling (I read Toplink, but probably also ADF Business Components), EJB-implementation, Security manager, Webservices Stack.

  3. The “Converged Application Server” is also going to be used in the Application Suites. (I wonder if this also is going to count for EBS in short notice; EBS just recently, since mid 2007, in R12 is based on Oracle 10g AS OC4J).

Thomas states that SOA is the fundamental architecture for Enterprise Applications.

A number of BEA features is going to be added to the Oracle SoaSuite. The Oracle SoaSuite then will consist of:

  • ESB converged to SCA Services Component Architecture

  • Oracle BPEL PM

  • Oracle Rules

  • Oracle Complex Event Processing mechanism combined with Weblogic Event server

  • BAM

  • Oracle Webservices Manager

  • BEA Aqualogic Enterprise Repository

  • Oracle Enterprise manager

  • Oracle Integration B2B engine

Thomas also talked a little about Enterprise 2.0, what in his eyes is about the fact how people in an enterprise use applications on internet. How you share information. Apparently Oracle's Content management systems plays a big role with versioning, access, indexing and searching. This brings together CMS from Oracle FMW + BEA:

  • Weblogic portal

  • Aqualogic user interaction

  • Oracle webcenter

This will be called the Webcenter Suite that will bring web2.0 services.

Another interesting subject Thomas talked about was: Business Process Management. This is about Separating definition of business processes into a Business Process Management Engine. For this Oracle comes with the BPM Suite - Business Process Management suite: modeling, execution and monitoring business processes. I wonder how the BPA suite and SoaSuite fits in this. To me it seems that BPM (being business process management, not modeling) is: BPA Suite (Business Process Architecting + Modeling) + jDeveloper (BPEL Modeling) + SOASuite (BPEL PM for execution and BAM for monitoring). But I don't know how far this is true, since on the BEA website I find a datasheet on the Aqua Logic BPM Suite. Thomas does not talk about the BPA Suite, so this sound like a rebranding of the AL BPM Suite, which also has a Business Analyst part. Interesting though is that this BPM suite also has a Process Modeller and an execution engine, while I understand from the talk of Thomas that Oracle BPEL PM will be the Process Execution engine of the SoaSuite. So I'm still very curious about that.

Two other interesting product suites Thomas talked about are:

  • Access Management Suite.

  • Weblogic Application Grid.

The combined Suites already available. In September 2008 the public date that the 100-days plan is done. More interoperability is promised in the future release of FMW 11g.

So although it is interesting hearing Thomas about Oracle's FMW+BEA roadmap, I've still some questions. My major ones are:

  • What is the future of the SoaSuite adapters? They're JCA compliant, but BEA also brings in adapters with the Aqualogic ESB. I've not looked into them, but expect them to be JCA complient also.

  • As stated above what about Oracle BPA suite verses BEA Aqualogic BPM Suite. When Oracle talks about the BPM Suite is this the rebranding BEA ALBPM, leaving behind the BPA Suite?

  • How will the Oracle BPEL PM fit in the BPM Suite? Since there is a great effort already done on integrating BPEL PM with BPA Suite, which together in my opinion sounds very like the BEA AL BPM Suite.