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.