Wednesday, October 22, 2008

Ubunutu Firefox, unable to reply hotmail message

Today my girlfriend came to the stunning conclusion she was unable to reply on e-mail messages when she was using here Ubuntu box. After some investigations she found out that she was already running the latest version of FireFox and she was still prompted, after the login page of hotmail, that she was not running a supported version. it finally came out that the version installed was a 'ubuntu release' of firefox.

Following the steps below will make the 'not able to reply' problem disappear.


1. Type about:config at firefox URL field and press enter.

2. Click on "I'll be careful, I promise!" button.

3. Then at the top filter field, type useragent to make "general.useragent.vendor" name in sight.

4. Double click "general.useragent.vendor" to change the value from Ubuntu to Firefox.

5. Done!

Thanks to John Navarro on ubuntuforums.org


Tuesday, October 21, 2008

understanding the XEN xm list command

When maintaining a XEN Oracle VM server one of the commands you will most likely be using a lot is the list command. list will give you a overview of which virtual machine is where, which virtual machine is running, which virtual machine is down and such things. Understanding the list command is vital to understanding your server landscape and monitor things.

We will be working in this post on the XEN xm shell as described in a previous post. XEN states the following about the list command: "List information about all/some domains".

xm> help list
Usage: xm list [options] [Domain, ...]

List information about all/some domains.
-l, --long Output all VM details in SXP
--label Include security labels
--state= Select only VMs with the specified state

xm>

the help list command is already showing you some of the options you will have at the list command. issuing the list command 'stand alone' is providing a output like the one below:

xm> list
Name ID Mem VCPUs State Time(s)
48_VM1 3 1024 1 -b---- 27356.4
Domain-0 0 581 2 r----- 395481.0
xm>

ID is showing you the 'internal' XEN domain ID or 'Virtual machine ID'. this ID is used at other commands to issue commands to take actions on a domain. For example if you want to shutdown a domain you issue the command shutdown -w (domain ID).

Mem is showing you the memory assigned to the domain in megabytes. In the example above you can see that domain 48_VM1 has 1024MB allocated and Domain-0 has 581MB assigned. This is not saying anything about how much of this memory is used within the domain by the virtual machine.

Time(s) is showing the time the domain is running.

State; the State field lists 6 states for a Xen Domain, and which ones the current Domain is in.
r - running
The domain is currently running on a CPU
b - blocked
The domain is blocked, and not running or runnable. This can be caused because the domain is waiting on IO (a traditional wait state) or has gone to sleep because there was nothing else for it to do.
p - paused
The domain has been paused, usually occurring through the administrator running xm pause. When in a paused state the domain will still consume allocated resources like memory, but will not be eligible for scheduling by the Xen hypervisor.
s - shutdown
The guest has requested to be shutdown, rebooted or suspended, and the domain is in the process of being destroyed in response.
c - crashed
The domain has crashed, which is always a violent ending. Usually this state can only occur if the domain has been configured not to restart on crash. See xmdomain.cfg for more info.
d - dying
The domain is in process of dying, but hasn't completely shutdown or crashed.

By adding --label to the list command you will get the security label added at the end of the records. Below you can see a example where I did not set security labels to the domains. For more information about adding security labels to XEN domains take a look at linuxtopia.org

xm> list --label
Name ID Mem VCPUs State Time(s) Label
48_VM1 3 1024 1 -b---- 27372.1 INACTIVE
Domain-0 0 581 2 r----- 395658.0 INACTIVE
xm>

By adding a -l or --long to the list command you will get a lot more information about the domains running on your XEN server. The information is represented in a S-expression format. Xen states the following about the list -l option: "If --long is specified, the output for xm list is not the table view shown above, but instead is an S-Expression representing all information known about all domains asked for. This is mostly only useful for external programs to parse the data.". I tend to disagree with XEN on the "This is mostly only useful for external programs to parse the data" section. You can quickly see a lot of information you might need about a domain in the S-Expression representation.

Wikipedia states the following about S-Expressions:
"The term S-expression or sexp (where S stands for symbolic) refers to a convention for representing semi-structured data in human-readable textual form. S-expressions are probably best known for their use in the Lisp family of programming languages. Other uses of S-expressions are in Lisp-derived languages such as DSSSL, and as mark-up in communications protocols like IMAP and John McCarthy's CBCL. The details of the syntax and supported data types vary in the different languages, but the most common feature among these languages is the use of S-expressions as parenthesized prefix notation (sometimes known as Cambridge Polish notation).

S-expressions are used for both code and data in Lisp (see McCarthy Recursive Functions of Symbolic Expressions [1]). S-expressions were originally intended only for data to be manipulated by M-expressions, but the first implementation of Lisp was an interpreter of S-expression encodings of M-expressions, and Lisp programmers soon became accustomed to using S-expressions for both code and data.".

The S-expression output of XEN on a domain or on all domains will be explained in a future post. This is to much to discuss right now.

XEN xm shell

When operating a XEN server and/or Oracle VM from a command line you can do almost everyting via de xm command. For example if you would like to view a list of the current domains on your server you can enter the command 'xm list' to show it on the console.

[root@boxjohan ~]# xm list
Name ID Mem VCPUs State Time(s)
48_VM1 3 1024 1 -b---- 27304.2
Domain-0 0 581 2 r----- 394864.9

however, when you have to do a lot of maintenance on your XEN and/or Oracle VM server you might not want to put xm in front of all your commands. So you can work on a XEN xm shell which is developed as a shell purely for working on your XEN and/or Oracle VM server. You can enter the shell by issuing the 'xm shell' command.

[root@boxjohan ~]# xm shell
The Xen Master. Type "help" for a list of functions.
xm>

You will notice that you are now in the XEN shell and your prompt is now xm> when you issue the help command you will notice that this will give you the exact same output as issuing xm from a bash command line.

xm> help
Usage: xm [args]

Control, list, and manipulate Xen guest instances.

Common 'xm' commands:

console Attach to 's console.
create Create a domain based on .
new Adds a domain to Xend domain management
delete Remove a domain from Xend domain management.
destroy Terminate a domain immediately.
dump-core Dump core for a specific domain.
help Display this message.
list List information about all/some domains.
mem-set Set the current memory usage for a domain.
migrate Migrate a domain to another machine.
pause Pause execution of a domain.
reboot Reboot a domain.
restore Restore a domain from a saved state.
resume Resume a Xend managed domain
save Save a domain state to restore later.
shell Launch an interactive shell.
shutdown Shutdown a domain.
start Start a Xend managed domain
suspend Suspend a Xend managed domain
top Monitor a host and the domains in real time.
unpause Unpause a paused domain.
uptime Print uptime for a domain.
vcpu-set Set the number of active VCPUs for allowed for
the domain.

can either be the Domain Name or Id.
For more help on 'xm' see the xm(1) man page.
For more help on 'xm create' see the xmdomain.cfg(5) man page.

For a complete list of subcommands run 'xm help'.
xm>

By using the xm shell function you will be able to more closely work with your XEN and/or Oracle VM server however you can also do anything what you want without invoking the shell, you will be able to do anything by putting xm in front of the command you would enter in the shell.

VMware Roadmap

I just found a post at techhead.co.uk written by Simon on VMware. The posting is really a guide to performing a basic Storage VMotion using the provided command line method from VMware. There are also other useful bits of information along the way.

As VMware explain in their ‘new features storage guide’:
"Storage VMotion (SVM) enables live migration of virtual machine disks from one datastore to another with no disruption or downtime. Just as VMware VMotion allows IT administrators to minimize service disruption due to planned server downtime, Storage VMotion allows them to minimize disruption by reducing the planned storage downtime previously required for rebalancing or retiring storage arrays. Storage VMotion simplifies array migration and upgrade tasks, and reduces I/O bottlenecks by moving virtual machines while the VM remains up and running. It provides a hot migration of the storage location on which the vmhome resides."

I also found a video on the VMware 2009 Roadmap Video Storage VMotion Enhancements.

Monday, October 20, 2008

At Google Zurich

Shame I missed it, Google hosted a open source jam in the Zurich office. One of the most interesting speeches I have missed is the talk by Gabriel Petrovay about the of XQuery support in Eclipse, using XQDT and Zorba. If you like to keep informed about the Open Source Jams at the google office in Zurich keep an eye open at the discussion group where you will be able to get more info.



Sunday, October 19, 2008

Oracle CRM vlog

Ken Pulverman from the Oracle CRM team launched his first video on his blog as part of (we hope) a lot more. By posting this they make the blog now a vlog. In his first video we can see a interview with Paul Greenberg at OpenWorld who is the author of "CRM at the Speed of Light"



Dual screen on Ubuntu

I recently tried to install Ubuntu on a desktop machine which was equipped with a dual screen setup. Having two screens and a ATI catalyst radeon X1950 PRO graphical video card. When installing Ubuntu from scratch it gave me initially the same screen on both screens and I wanted to extend the desktop so you could have one big screen to work on instead of clone the screen on both monitors.

To get rid of this problem I started to explore the /etc/X11/xorg.conf file stating how X will work with your monitor(s) and input devices. I have been reading some forums and guides where people stated how they achieved to get things working. I finally started with a promising howto guide and found myself in the position after a while where I could only have a screen on one single monitor. After some restore work and fixing some stuff I broke during this approach I tried it in a different way.

ATI is providing a proprietary drivers and a management tool. Even do I normally tend to the free and opensource drivers provided by the community I decided against it this time. Free as in freedom also means that you have the freedom not to choose the freedom op opensource, in this case I picked to give up some of this freedom. After installing the drivers and the management tool all was setup in a couple of minutes. So when you try to setup a dual screen in Ubuntu and you have a ATI card, the fastest way to do things is to use the ATI software.





Monday, October 13, 2008

Oracle Project Management tool


A couple of day ago Oracle finally acquired Primavera Software, Inc. Talks where already some time on the way but October 8 Oracle and Primavera launched a press release stating that they have agreed with the takeover.

Looking at the product portfolio of Primavera it can only be considered a good investment decision. For example the Project Management tool which runs in a web browser can very easily be combined with the other Oracle products. And this will give a lot of companies the possibility to run there Project Management tools even closer in their ERP systems and by doing this you can even more closely report and measure the outcome of a project and the efficiency.
And it is one more reason to NOT switch to Microsoft Projects.



Best Linux distro

What is the best Linux distribution? A question I am afraid of giving a answer to. Most of the linux distributions today are quite good. Some are more applicable for this field and others are better for using in an other field. Then we have the emotional part, people who have been around in the Linux communtie have maybe helped building Linux distributions and therefor tend more to this particular distribution.

However, Ken Hess is not afraid of giving an answer on this question and he has written an article on daniweb.com stating the following list:

01 Ubuntu
02 Debian
03 CentOS
04 Red-Hat
05 Knoppix
06 Gentoo
07 Fedora
08 Mandriva
09 Slackware
10 SuSe


you can read all about the why and how on the daniweb webpage.


ORA-27054


When installing a 10G database we encountered a ORA-27054 error message. To be presice we got the following errors:

ORA-19624: Operation failed, retry possible
ORA-19870: Error reading backup piece /oebs/vm1/10.2.0/db/assistants/dbca/templates/Seed_Database.dfb
ORA-19505: Failed to identify file "oebs/vm1/10.2.0/db/assistants/dbca/templates/Seed_Database.dfb"
ORA-27054: NFS file system where the file is created or resides is not mounted with the correct options.

After looking into the way we mounted the Oracle Enterprise Linux box to the Netapp filer we found out that some things options where missing. Even do we where capable of working on the remote storage the installer was unable to install the 10G database.

Oracle suggested to use:
10.20.30.40:/vol/prd/vm1 /oebs/vm1nfs -yes rw,hard,nointr,rsize=32768,wsize=32768,tcp,noac,vers=3

We finally used the following entry in /etc/fstab:
10.20.30.40:/vol/prd/vm1 /oebs/vm1 nfs rw,hard,nointr,rsize=32768,wsize=32768,tcp,noac,vers=3

This solved the
ORA-27054 (and the other) errors.



Saturday, October 11, 2008

Virtual mister T

Yes I know, I know... this is not a very serious post but I just had to share this video about virtualization with you guys. Mister T from the A team is explaining some about virtualization.



Oracle VM ovs-makerepo

When you want to use of a remote storage solution in Oracle VM and you would like to use it for your virtual machines you will have to setup Oracle VM Server Repository for your storage. You can also make remote storage available bye editing your /etc/fstab file, however the correct way is to use the ovs-makerepo tool provided by oracle.

The reasons you would like to store virtual machines on a remote storage can be that you would like to use the live migration option and/or you just want things nice and tidy on a remote storage so you can easily backup and snapshot things. This way you do no longer need a lot of diskspace in your hardware server, you just have a large pool of diskspace where you can reserve a part for a operating system.

You can find the ovs-makerepo tool in /usr/lib/ovs.

[root@oebs11 ovs]# ./ovs-makerepo
usage: ./ovs-makerepo
source: block device or nfs path to filesystem
shared: filesystem shared between hosts? 1 or 0, or @ or C for cluster root (/OVS)
description: descriptive text to be displayed in manager
[root@oebs11 ovs]#

To create a repository you have to provide a source where you tell the system where the storage is located, you have to tell if it can be shared by different hosts and you can give a short meaningful description. For example the following command:

[root@oebs11 ovs]# ./ovs-makerepo 10.73.69.199:/vol/uat/virt_storage_0 1 VIRTUAL_DISK_0

If you now check the mounts on your system with a 'df -h' you will see a new mount in your /OVS directory with a large random name. This is your new repository. instead of making use of /etc/fstab Oracle VM will make use of the /etc/ovs/repositories file to setup the mounts. The listing in /etc/ovs/repositories is quite basic. You might want to use some more options on how your repository is mounted to the server. You can do this by editing the file /etc/ovs/repositories.options. The format of this file is: uuid options. The uuid parameter is the UUID (Universally Unique Identifier) of the repository and must match the UUID of the repository in the /etc/ovs/repositories file. The options parameter is list of mount options, as they would appear if the volume were mounted with mount -o opt1,opt2,opt3. The mount options will be used exactly as listed in the file until the end of the line.

If you want to remove a repository for some reason you can do so by issuing a ovs-offlinerepo command. This tool can be found also in /usr/lib/ovs . ovs-offlinerepo will umount the repository and remove the automount instructions from the system. issue: ovs-offlinerepo [-d] uuid source where uuid is the ID of the repository and source is the source location (the filer) where you mounted on.


Oracle query available quantity

When you like to know the available quantity of a item in Oracle E-Business suite you will, as a user, go to the Item Supply/Demand form in the On-Hand, Availability menu in Inventory. There are other screens however this is one of the most used as I have experienced.

However, in some cases you would like to have a query giving you the available quantyity of a item. Rananthaus, a tech. lead and project manager from California, pointed me to MTL_ONHAND_QUANTITIES. The query below which I wrote will give you the available quantity of an item per organisation, sub-inventory. You can use this query to build upon and enrich your application. I have tested it on a 11.5.10 instance, if you deploy it on an other version please do send me a mail or comment so I can blog that this is also working on other versions.


SELECT
QUA.INVENTORY_ITEM_ID,
QUA.ORGANIZATION_ID,
QUA.SUBINVENTORY_CODE,
SUM(QUA.TRANSACTION_QUANTITY)
FROM
MTL_ONHAND_QUANTITIES QUA
GROUP BY
QUA.INVENTORY_ITEM_ID,
QUA.ORGANIZATION_ID,
QUA.SUBINVENTORY_CODE




virtualization, san and nas

I already posted the CyGem virtualization 101 movie. Here you can see a video about storage and virtualization also done by CyGem.

"We discuss some of the fundamentals to SAN (Storage Area Networking) and NAS (Network Attached Storage). The differences between the two architectures are explained and when it is appropriate to use one technology versus the other. "



Thursday, October 09, 2008

Cisco PCF files

I was recently asked to prep some vpn profiles files for a customer as I have been playing around with Cisco PIX firewalls. Playing with a Cisco PIX firewall is NOT an indication that I know all about it and that I know all about the cisco pcf file format. However I found out that a .pcf file a flat text file you can modify with vi to your licking. A basic file looks like this the one below. All you have to know is what the meaning is of every line and you can create a .pcf file.


Description=some-name
!Host=10.20.30.40
!AuthType=1
!GroupName=
!GroupPwd=
!enc_GroupPwd=
EnableISPConnect=0
ISPConnectType=0
ISPConnect=
ISPCommand=
Username=
SaveUserPassword=0
UserPassword=
enc_UserPassword=
!NTDomain=
!EnableBackup=0
!BackupServer=
!EnableMSLogon=1
!MSLogonType=0
!EnableNat=1
!TunnelingMode=0
!TcpTunnelingPort=10000
CertStore=0
CertName=
CertPath=
CertSubjectName=
CertSerialHash=00000000000000000000000000000000
SendCertChain=0
VerifyCertDN=
DHGroup=2
ForceKeepAlives=1
PeerTimeout=90
!EnableLocalLAN=0
!EnableSplitDNS=1
ISPPhonebook=


So a short explanation of the main options you have in a pcf file.

Description
The Description is a string of maximum 246 alphanumeric characters describing the use of the VPN connection

Host
The Host line is used to provide a IP address of the VPN server/device or the domain name. Max 255 alphanumeric characters!

AuthType
The AuthType will define the way the user is athenticated against the server/device. 1 = Pre-shared keys (default)
3 = Digital Certificate using an RSA signature. 5 = Mutual authentication

GroupName
The name of the IPSec group that contains this user. Used with pre-shared keys. The exact name of the IPSec group configured on the VPN central-site device. Maximum 32 alphanumeric characters. Case-sensitive.

GroupPwd
Group Password. The password for the IPSec group that contains this user. Used with pre-shared keys. The first time the VPN Client reads this password, it replaces it with an encypted one (enc_GroupPwd). The exact password for the IPSec group configured on the VPN central-site device. Minimum of 4, maximum 32 alphanumeric characters. Case-sensitive clear text.

encGroupPwd
The password for the IPSec group that contains the user. Used with pre-shared keys. This is the scrambled version of the GroupPwd. Binary data represented as alphanumeric text.

EnableISPConnect
Connect to the Internet via Dial-Up Networking. Specifies whether the VPN Client automatically connects to an ISP before initiating the IPSec connection; determines whether to use PppType parameter. 0 = ISPConnect (default) 1 = ISPCommand. The VPN Client GUI ignores a read-only setting on this parameter.

ISPConnect
Dial-Up Networking Phonebook Entry (Microsoft). Use this parameter to dial into the Microsoft network; dials the specified dial-up networking phone book entry for the user's connection. Applies only if EnableISPconnect=1 and ISPConnectType=0.

ISPCommand
Dial-Up Networking Phonebook Entry (command). Use this parameter to specify a command to dial the user's ISP dialer. Applies only if EnableISPconnect=1 and ISPConnectType=1. Command string: This variable includes the pathname to the command and the name of the command complete with arguments; for example: "c:\isp\ispdialer.exe dialEngineering" Maximum 512 alphanumeric characters.

Username
User Authentication: Username. The name that authenticates a user as a valid member of the IPSec group specified in GroupName. The exact username. Case-sensitive, clear text, maximum of 32 characters. The VPN Client prompts the user for this value during user authentication.

UserPassword
User Authentication: Password. The password used during extended authentication. The first time the VPN Client reads this password, it saves it in the file as the enc_UserPassword and deletes the clear-text version. If SaveUserPassword is disabled, then the VPN Client deletes the UserPassword and does not create an encrypted version. You should only modify this parameter manually if there is no GUI interface to manage profiles.

encUserPassword
Scrambled version of the user's password

SaveUserPassword
Determines whether or not the user password or its encrypted version are valid in the profile. This value is pushed down from the VPN central-site device. 0 = (default) do not allow user to save password information locally. 1 = allow user to save password locally.

NTDomain
User Authentication: Domain. The NT Domain name configured for the user's IPSec group. Applies only to user authentication via a Windows NT Domain server. Maximum 14 alphanumeric characters. Underbars are not allowed.

EnableBackup
Enable backup server(s) specifies whether to use backup servers if the primary server is not available. 0 = Disable (default) 1 = Enable.

BackupServer
(Backup server list). List of hostnames or IP addresses of backup servers. Applies only if EnableBackup=1. Legitimate Internet hostnames, or IP addresses in dotted decimal notation. Separate multiple entries by commas. Maximum of 255 characters in length.

EnableMSLogon
Logon to Microsoft Network. Specifies that users log on to a Microsoft network.Applies only to systems running Windows 9x. 0 = Disable 1 = Enable (Default)

MSLogonType
Use default system logon credentials. Prompt for network logon credentials. Specifies whether the Microsoft network accepts the user's Windows username and password for logon, or whether the Microsoft network prompts for a username and password. Applies only if EnableMSLogon=1. 0 = (default) Use default system logon credentials; i.e., use the Windows logon username and password. 1 = Prompt for network logon username and password.

EnableNat
Enable Transparent Tunneling. Allows secure transmission between the VPN Client and a secure gateway through a router serving as a firewall, which may also be performing NAT or PAT. 0 = Disable 1 = Enable (default)

TunnelingMode
Specifies the mode of transparent tunneling, over UDP or over TCP; must match that used by the secure gateway with which you are connecting. 0 = UDP (default)1 = TCP

TCPTunnelingPort
Specifies the TCP port number, which must match the port number configured on the secure gateway. Port number from 1 through 65545 Default = 10000

EnableLocalLAN
Allow Local LAN Access. Specifies whether to enable access to resources on a local LAN at the Client site while connected through a secure gateway to a VPN device at a central site. 0 = Disable (default) 1 = Enable

PeerTimeout
Peer response time-out The number of seconds to wait before terminating a connection because the VPN central-site device on the other end of the tunnel is not responding. Number of seconds Minimum = 30 seconds Maximum = 480 seconds Default = 90 seconds

CertStore
Certificate Store. Identifies the type of store containing the configured certificate. 0 = No certificate (default) 1 = Cisco 2 = Microsoft The VPN Client GUI ignores a read-only (!) setting on this parameter.

CertName
Certificate Name. Identifies the certificate used to connect to a VPN central-site device. Maximum 129 alphanumeric characters The VPN Client GUI ignores a read-only setting on this parameter.

CertPath
The complete pathname of the directory containing the certificate file. Maximum 259 alphanumeric characters The VPN Client GUI ignores a read-only setting on this parameter.

CertSubjectName
The fully qualified distinguished name (DN) of certificate's owner. If present, the VPN Dialer enters the value for this parameter. Either do not include this parameter or leave it blank. The VPN Client GUI ignores a read-only setting on this parameter.

CertSerialHash
A hash of the certificate's complete contents, which provides a means of validating the authenticity of the certificate. If present, the VPN Dialer enters the value for this parameter. Either do not include this parameter or leave it blank. The VPN Client GUI ignores a read-only setting on this parameter.

SendCertChain
Sends the chain of CA certificates between the root certificate and the identity certificate plus the identity certificate to the peer for validation of the identity certificate. 0 = disable (default) 1 = enable

VerifyCertDN
Prevents a user from connecting to a valid gateway by using a stolen but valid certificate and a hijacked IP address. If the attempt to verify the domain name of the peer certificate fails, the client connection also fails.

DHGroup
Allows a network administrator to override the default group value on a VPN device used to generate Diffie- Hellman key pairs.

RadiusSDI
Tells the VPN Client to assume that Radius SDI is being used for extended authentication (XAuth).

SDIUseHardwareToken
Enables a connection entry to avoid using RSA SoftID software.

EnableSplitDNS
Determines whether the connection entry is using splitDNS, which can direct packets in clear text over the Internet to domains served through an external DNS or through an IPSec tunnel to domains served by a corporate DNS. This feature is configured on the VPN 3000 Concentrator and is used in a split-tunneling connection.

UseLegacyIKEPort
Changes the default IKE port from 500/4500 to dynamic ports to be used during all connections. You must explicitly enter this parameter into the .pcf file.

ForceNetlogin
(windows-only) Enables the Force Net Login feature for this connection profile.


Wednesday, October 08, 2008

Oracle website performance

Ever visited a website to purchase a product and had to wait for a long time before the checkout page came up? Ever waited a long time before a product search completed on a e-commerce site? Did you ever returned to that site? If you have ever experienced this the changes are great that you did not return to purchase something again from that website. The change is also great that you even aborted your purchase. And you will not be alone in this, hundreds or even thousands of customers every day get disappointed at the speed of some e-commerce websites. Those websites can provide the best products around or they can even represent the best brands, as the performance of a website is not expecting the demands of a visiting customer you will most likely lose this customer to the competition.

The financial loses of loosing customers due to under performing it systems can be enormous and even deadly in some cases. It can harm your brand in such a way that it will lose market share. For this reason companies do apply systems to measure system performance. Most of those systems monitor the health of your system. They will look at memory use, CPU utilization, network bandwidth. Some companies do probe the website from a inside or outside location and let bots crawl there website and report response times back to the IT department. All good things you should do, you should be aware of the health of your system and you should be aware if your site is till available to the outside world. However, measuring your system performance is not saying anything about how quick a page request is send to the customer who requested the page. And measuring one or more pre-defined click paths into your website from a outside location is not saying anything about the real performance a customer is experiencing.

To tackle this problem you should be looking at the speeds your real customers are experiencing. Oracle has developed Oracle Enterprise Manager Real User Experience Insight as part of the Oracle Enterprise Manager 10G stack. Oracle Enterprise Manager Real User Experience Insight or OEM-RUEI will capture, analyse and report on real customer experience by 'sniffing' network traffic. It will look at the requests send to your webserver and the response send back. So when a customer asks for somedomain.com/index.html the customers browser will send a get request to the webserver running the somedomain.com domain. The webserver will send the request back and OEM-RUEI will detect the time that the request leaves the companies network and is at the customer. The time between the get request and the moment the response is send back over the network is the real time the customer is also experiencing.

This way you can see what the real times are, if customers abort transaction and what is really happening in the eyes of the end customer. This will be of more value to indicate if a customer is having a good experience. if you see that the response times are getting up you can look more into the details and this is when the measuring of your CPU, memory and bandwidth of your server come into play in combination with the analysis of your network switches, routers and such. So all tools in the market have some value and all have a place in analyzing the performance of a website, however in my opinion OEM-RUEI is such a valuable tool that if you are running a serious website you should consider looking into this.

Friday, October 03, 2008

Oracle VM hypervisor

The Oracle VM hypervisor is a type 1 hypervisor. A type 1 hypervisor is bare-metal hypervisor which means that it will run directly on the hardware, also called a native hypervisor. The advantage of a type 1 hypervisor against a type 2 hypervisor which is a software package running in a operating system is that it can directly deal with the hardware and that it is not depending on the underlaying operating system.By a type 2 hypervisor you will see that a I/O request will travel from the guest operating system to the hypervisor who will give it to the host operating system who will deal with the actual I/O operation. The host operating system will return the resulting message to the hypervisor and he will return it to the guest operating system.

With a type 1 hypervisor you eliminate the host operating system in this process and by doing so operations will speed up. Also stability will increase because of the fact to you will no longer have to deal with possible incorrect fault handling or bottlenecks in the host operating system. This is one of the main reasons that virtualization vendors are stepping away from type 2 hypervisors and start working on type 1 hypervisors.

A second advantage is that you no longer have the need to maintain and purchase a host operating system as the type 1 hypervisor will be your lowest layer between the guest operating systems and the hardware. This is placing the XEN and Oracle VM in the advantage. The type 1 hypervisor is originally developed as part of IBM CP/CMS developed by the IBM Cambridge Scientific Center. CP/CMS is a time-sharing operating system of the late 60s and early 70s, known for its excellent performance and advanced features.

Virtualization 101

I just came across a very short and very clear virtualization 101 movie. I am asked quite often what virtualization is and what the benefits are. Well, watch this movie and all will become clear in a moment. Well, it is a 101 so you will get some of the basics and the rest you still have to investigate to get into the details.



Thursday, October 02, 2008

Oracle Concurrent Request phase and status

A concurrent request within Oracle EBS always has a status and is in a phase. The phases and status are linked and only a limited number of combinations are possible. The phases are: PENDING, RUNNING, COMPLETED and INACTIVE.

you can have the following statuses within the PENDING phase:
- Normal: Request is waiting for the next available manager.
- Standby: Program to run request is incompatible with other program(s) currently running.
- Scheduled: Request is scheduled to start at a future time or date.
- Waiting: A child request is waiting for its Parent request to mark it ready to run. For example, a request in a request set that runs sequentially must wait for a prior request to complete.

For the RUNNING phase you can have the following statuses:
- Normal: Request is running normally.
- Paused: Parent request pauses for all its child requests to finish running. For example, a request set pauses for all requests in the set to complete.
- Resuming: All requests submitted by the same parent request have completed running. The Parent request resumes running.
- Terminating: Request is terminated by choosing the Cancel Request button in Requests window.

For the COMPLETED phase you can have the following statuses:
- Normal: Request completed successfully.
- Error: Request failed to complete successfully.
- Warning: Request completed with warnings. For example, a request is generated successfully but fails to print.
- Cancelled: Pending or Inactive request is cancelled by choosing the Cancel Request button in the Requests window.
- Terminated: Request is terminated by choosing the Cancel Request button in the Requests window.

For the INACTIVE phase you can have the following statuses:
- Disabled: Program to run request is not enabled. Contact your system administrator.
- On Hold: Pending request is placed on hold by choosing the Hold Request button in the Requests window.

- No Manager: No manager is defined to run the request. Check with your system administrator. A status of No Manager is also given when all managers are locked by run-alone requests.

Wednesday, October 01, 2008

Oracle VM and thin clients

Most people who are looking into start using Oracle VM for server virtualization are overlooking one big advantage of using Oracle VM. You can use Oracle VM also for the virtualizaton of your desktop environments. More and more companies are starting to deploy thin clients in the enterprise so they can cut costs on expensive desktops and only have to deploy thin clients who run the operating system via the network on a central server. This central server can also be a 'free' Oracle VM server where you run all the desktops on.

Ericom is providing a free 'gateway' between your thin clients and Oracle VM. It is free up to 500 users. You should read carefully what you can get free and what not. However, fact remains that you can setup a thin client environment by using Oracle VM which can be a great benefit for your organization in terms of saving power, saving on expensive desktops and cutting down the cost of desktop maintenance.


Also check the video below, the video might not work from time to time because 'for some reason' the user who uploaded it did a 'do not embed' request. If it is not working try this link to the video.


bind retransfer zone

When operating a large number of BIND servers to enable DNS support on your internal and/or external domain you sometimes do not want to wait until the zones are refreshed automatically. The basic way BIND and DNS works is that you control domain names at your master server, all you slave servers are looking at the master and request on a regular basis the version number from a zone. When the version number of the zone on the master is different from the version number of the slave it will request a zone file transfer. When the slave is allowed to do a zone file transfer the new zone file is send to the slave and the slave will be aware of the changes.

However, in some cases you do not have the time to wait until the slaves pickup the new zone settings. In those cases you have to force bind to do a 'retransfer'. By issuing a retransfer bind will retransfer a single zone without checking serial number and start using it immediately. You can can issue a retransfer with rndc. rndc is the name server control utility.

rndc controls the operation of a name server. It supersedes the ndc utility that was provided in old BIND releases. If rndc is invokedwith no command line options or arguments, it prints a short summary of the supported commands and the available options and their arguments.

rndc communicates with the name server over a TCP connection, sending commands authenticated with digital signatures. In the current versions of rndc and named named the only supported authentication algorithm is HMAC-MD5, which uses a shared secret on each end of the connection. This provides TSIG-style authentication for the command request and the name server's response. All commands sent over the channel must be signed by a key_id known to the server.

To let rndc force a retransfer for for example domain somedomain.com you execute the following command:

rndc -k /etc/bind/rndc.key retransfer somedomain.com

the -k /etc/bind/rndc.key part is used to tell rndc where you have stored the rndc key. This can vary per installation and is not always required. You could first try it without the key part. If it fails try to locate the key and use the -k option.