Thursday, 28 May 2009

start ODBC control panel


Package deployment

We were hesitating last night to deploy a package on a server that had active SBS jobs running.  We were doing a UA package and saw that there were PD SBS jobs running.

It seems that you can do this, supporting (and not so supporting) documentation is below about the 812 package deployment process.

SBS running

An active subsystem job that is constantly running with a processing status is seen by the deployment as a job that it can not put on hold.  This requires end users to manually stop any 'processing' subsystem jobs so that a package deployment can be successfully completed.  A full lock on the files being changed by the deployment is required and this requires a hold on all jobs in the queue and kernel processes on the logic server.

Recoverable failed deployments

Good news is that the package can be redeployed at anytime (they are on

This issue is fixed in BUG:8356917 (Tools Release or higher) in which user do not need to restart services in order to unlock the server. If the Package deployment hangs due to certain interuptions e.g. long running business functions,subsystem jobs, UBEs currently running, etc, user can resubmit the Package Deployment UBE R98825D by clicking the Deploy button in Package Deploy application after those interuptions has fininshed and the system will do a clean up to unlock the locks and re-deploy the package.

Package deploy notes.

The solution is based on the existing process of how the server deployment process works.  Once the R98825D is kicked off, the deployment process signals all kernels on the server to go into a wait status.  Any job or process currently running will continue to process to completion, however, any process or job that is in the queue will be put on hold.
The end effect on end users is that they will ultimately not be able to process anything that uses the logic server (i.e. BSFNS mapped to the server, UBE jobs, Scheduled Jobs) during the time it takes for the deployment to finish.  Update packages would be much faster and full packages can take more time depending on hardware speed and disk I/O.
With this effect occurring, it is not recommended that clients deploy packages during normal hours of operation in a production environment.  The effect on changes to the specs and business libraries on dependent processes still waiting in the queue for after the deploy finishes could cause unexpected results.  For instance, if a transaction requires 5 functions to run and they are dependent on each other in the process then it would be possible that a deployment submitted while the first function is running could change the outcome of the remaining functions based on changes to the objects being used.   For this reason, it is recommended that production deployments be scheduled during a down time or during a slow period where end users are limited or doing read only type processes.
A true 24/7 shop may require a unique or custom solution to hot swap the servers to provide minimal downtime.  This is not supported by GSC officially and should be referred to our field support or business partners for official support of these types of solutions.  Even with a hot swap type solution, ultimately end users will be impacted and transactional processes may be impacted.
Clients that are the least affected by deployments to a logic server are those running a true fat client setup which is supported through the 8.10 release.  A Citrix or Terminal Server setup has the same negative impact on end users like HTML users normally since OCMs would default business functions to run on the server.  Running business functions locally in a terminal server setup can make your end users less impacted by deployment but will also negatively impact performance and the total number of users that can run concurrently on those machines.  HTML users, which is the only option in 8.11 and above will always be negatively impacted by deployments and this is the reason why the subject ofdeployment recommendations has more recently become an important topic with the EnterpriseOne client base.
Other ideas to help minimize impact on a production system include using multifoundation or separate logic servers for DV and PY versus a PD system.  The deployment of a package to DV on the same machine as PD sharing the same port would have the same effect of locking down all kernels and negatively impacting productions users.  The use of separate ports on the same logic server can effectively separate a production pathcode from deployment events occurring in other pathcodes.
Some enhancements to the deployment process seen in 8.96_A1 and above is the ability for a deployment process that is hung due to long running business functions to be resubmitted and recover any held kernel processes.  This will help minimize the need to refresh services if a deployment process hangs or fails due to network failures.  Simply rerunning the R98825D will accomplish this in 8.96_A1 and above.
Update 2/7/08 -- Two new SARs have been entered to address issues with the new requirements around the package deployment.

Tuesday, 26 May 2009

EE or SE, to enterprise or not to enterprise

To determine if your oracle DB is enterprise or not, run the following SQL:

select product, version from product_component_version;

Standard will reveal:

Oracle Database 10g enterprise edition for EE

Oracle Database 10g for SE

you can do a select from DBA_FEATURE_USAGE_STATISTICS to see how much people have been using things they should not be using.

Thursday, 14 May 2009

ActiveX controls

More information on the activeX controls. How to find out what version a user is using. I could write a script that could tell you all of this too?

JDE ActiveX controls:

There are two main activeX controls that JDE uses:



8.96.E vers vers


Import and export




Rich text editing





So, only the import and export OCX has changed between the tools releases.

In internet explorer, you can see the registered add-ons by going to internet options, programs and then choosing manage add ons.


The above screen is ie6 with both activeX controls loaded.

How do I tell what version I have:

Run regedit and search for jdewebctls.inf under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution Units

To see what version is on your machine, you need to look at the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution Units

Search for jdeweb, then look at the installed version under that path:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution Units\{B1D21FC5-A742-4261-86F2-C7B7F1A31C5D}\InstalledVersion


The value \{B1D21FC5-A742-4261-86F2-C7B7F1A31C5D}\ can be found by looking at the following registry entries:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ModuleUsage\C:/WINNT/Downloaded Program Files/jdewebctlsU.ocx


Note that if this was manually installed last time, the update will not come from the website, it will need to be manually updated.  This can be done with an admin running the following:

remember that they are stored in the axctls dir under webclient.war for your webserver.  Make a dir on the dep server that everyone has access to, and then create a script.

Manual job to copy them up:

xcopy /Y \\deployment\E812\OCXInstall %windir%

regsvr32.exe %windir%\jdeexpimpU.ocx

regsvr32.exe %windir%\jdewebctlsU.ocx


Tuesday, 12 May 2009

Tiered deployment locations

This is a fairly easy thing to set up, it’s especially good if you have central objects that are remote to your production server and deployment server.

When I say this is easy, there is one little thing that I’ve forgotten before and has created no end of grief. 

Sure you can go into the pathcode master and change the location of the central objects, and seemingly you are nearly there…  Do the same in the planner environment, or ESU’s won’t go on right.

The thing that you need to remember to do is UPDATE object librarian F9861 before you apply any ESU’s and before anything is checked in, otherwise you will start to get duplicates – and this is a little hard to fix after a few months.

select simkey, count(1) from ol812.f9861 where sipathcd = 'PY812' and sistce = '1' group by simkey

The above SQL will ensure that there is currently only one name being used as a deployment location.  Then update the old with the new and you should be fine.

Things to remember when renaming an ent server 8.12 edition

This is by no means an exhaustive list, but the things I generally forget.

F96511 for machine name and active package / data source information

Remember LDAP changes for security server, if it was/is a security server - F00928

Default queues for batch jobs - F986130

default printer – add one

JDE.INI changes & JAS.INI changes

Thursday, 7 May 2009

Basic linux script to document system

echo '#####date'
echo "#####system name kernel info"
uname -a
echo "#####name and version OS"
head -n1 /etc/issue
#echo "#####Partitions registered"
#cat /proc/partitions
echo "#####MEMORY Info"
grep MemTotal /proc/meminfo
echo "#####CPU info"
grep "model name" /proc/cpuinfo
echo "#####filesystem mounts"
mount | column -t
echo "#####uptime"
echo "#####disk information"
hdparm -i /dev/sda
echo "#####file system capacity"
df -k
echo "ipconfig"

unix commands


apropos whatis
Show commands pertinent to string. See also threadsafe

man -t man | ps2pdf - > man.pdf
make a pdf of a manual page

which command
Show full path name of command

time command
See how long a command takes

time cat
Start stopwatch. Ctrl-d to stop. See also sw

nice info
Run a low priority command (The "info" reader in this case)

renice 19 -p $$
Make shell (script) low priority. Use for non interactive tasks

dir navigation

cd -
Go to previous directory

Go to $HOME directory

(cd dir && command)
Go to dir, execute command and return to current dir

pushd .
Put current dir on stack so you can popd back to it

file searching

alias l='ls -l --color=auto'
quick dir listing

ls -lrt
List files by date. See also newest and find_mm_yyyy

ls /usr/bin | pr -T9 -W$COLUMNS
Print in 9 columns to width of terminal

find -name '*.[ch]' | xargs grep -E 'expr'
Search 'expr' in this dir and below. See also findrepo

find -type f -print0 | xargs -r0 grep -F 'example'
Search all regular files for 'example' in this dir and below

find -maxdepth 1 -type f | xargs grep -F 'example'
Search all regular files for 'example' in this dir

find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done
Process each item with multiple commands (in while loop)

find -type f ! -perm -444
Find files not readable by all (useful for web site)

find -type d ! -perm -111
Find dirs not accessible by all (useful for web site)

locate -r 'file[^/]*\.txt'
Search cached index for names. This re is like glob *file*.txt

look reference
Quickly search (sorted) dictionary for prefix

grep --color reference /usr/share/dict/words
Highlight occurances of regular expression in dictionary

archives and compression

gpg -c file
Encrypt file

gpg file.gpg
Decrypt file

tar -c dir/ | bzip2 > dir.tar.bz2
Make compressed archive of dir/

bzip2 -dc dir.tar.bz2 | tar -x
Extract archive (use gzip instead of bzip2 for tar.gz files)

tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
Make encrypted archive of dir/ on remote machine

find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2
Make archive of subset of dir/ and below

find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents
Make copy of subset of dir/ and below

( tar -c /dir/to/copy ) | ( cd /where/to/ && tar -x -p )
Copy (with permissions) copy/ dir to /where/to/ dir

( cd /dir/to/copy && tar -c . ) | ( cd /where/to/ && tar -x -p )
Copy (with permissions) contents of copy/ dir to /where/to/

( tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar -x -p'
Copy (with permissions) copy/ dir to remote:/where/to/ dir

dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz'
Backup harddisk to remote machine

rsync (Network efficient file copier: Use the --dry-run option for testing)

rsync -P rsync:// file
Only get diffs. Do multiple times for troublesome downloads

rsync --bwlimit=1000 fromfile tofile
Locally copy with rate limit. It's like nice for I/O

rsync -az -e ssh --delete ~/public_html/'~/public_html'
Mirror web site (using compression and encryption)

rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/
Synchronize current directory with remote one

ssh (Secure SHell)

ssh $USER@$HOST command
Run command on $HOST as $USER (default command=shell)

ssh -f -Y $USER@$HOSTNAME xeyes
Run GUI command on $HOSTNAME as $USER

scp -p -r $USER@$HOST: file dir/
Copy with permissions to $USER's home directory on $HOST

ssh -g -L 8080:localhost:80 root@$HOST
Forward connections to $HOSTNAME:8080 out to $HOST:80

ssh -R 1434:imap:143 root@$HOST
Forward connections from $HOST:1434 in to imap:143

wget (multi purpose download tool)

(cd dir/ && wget -nd -pHEKk
Store local browsable version of a page to the current dir

wget -c
Continue downloading a partially downloaded file

wget -r -nd -np -l1 -A '*.jpg'
Download a set of files to the current directory

wget ftp://remote/file[1-9].iso/
FTP supports globbing directly

wget -q -O- | grep 'a href' | head
Process output directly

echo 'wget url' | at 01:00
Download url at 1AM to current dir

wget --limit-rate=20k url
Do a low priority download (limit to 20KB/s in this case)

wget -nv --spider --force-html -i bookmarks.html
Check links in a file

wget --mirror
Efficiently update a local copy of a site (handy from cron)

networking (Note ifconfig, route, mii-tool, nslookup commands are obsolete)

ethtool eth0
Show status of ethernet interface eth0

ethtool --change eth0 autoneg off speed 100 duplex full
Manually set ethernet interface speed

iwconfig eth1
Show status of wireless interface eth1

iwconfig eth1 rate 1Mb/s fixed
Manually set wireless interface speed

iwlist scan
List wireless networks in range

ip link show
List network interfaces

ip link set dev eth0 name wan
Rename interface eth0 to wan

ip link set dev eth0 up
Bring interface eth0 up (or down)

ip addr show
List addresses for interfaces

ip addr add brd + dev eth0
Add (or del) ip and mask (

ip route show
List routing table

ip route add default via
Set default gateway to

tc qdisc add dev lo root handle 1:0 netem delay 20msec
Add 20ms latency to loopback device (for testing)

tc qdisc del dev lo root
Remove latency added above

Lookup DNS ip address for name or vice versa

hostname -i
Lookup local ip address (equivalent to host `hostname`)

Lookup whois info for hostname or ip address

netstat -tupl
List internet services on a system

netstat -tup
List active connections to/from system

windows networking (Note samba is the package that provides all this windows specific networking support)

Find windows machines. See also findsmb

nmblookup -A
Find the windows (netbios) name associated with ip address

smbclient -L windows_box
List shares on windows machine or samba server

mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share
Mount a windows share

echo 'message' | smbclient -M windows_box
Send popup to windows machine (off by default in XP sp2)

text manipulation (Note sed uses stdin and stdout. Newer versions support inplace editing with the -i option)

sed 's/string1/string2/g'
Replace string1 with string2

sed 's/\(.*\)1/\12/g'
Modify anystring1 to anystring2

sed '/ *#/d; /^ *$/d'
Remove comments and blank lines

sed ':a; /\\$/N; s/\\\n//; ta'
Concatenate lines with trailing \

sed 's/[ \t]*$//'
Remove trailing spaces from lines

sed 's/\([`"$\]\)/\\\1/g'
Escape shell metacharacters active within double quotes

seq 10 | sed "s/^/      /; s/ *\(.\{7,\}\)/\1/"
Right align numbers

sed -n '1000p;1000q'
Print 1000th line

sed -n '10,20p;20q'
Print lines 10 to 20

sed -n 's/.*<title>\(.*\)<\/title>.*/\1/ip;T;q'
Extract title from HTML web page

sed -i 42d ~/.ssh/known_hosts
Delete a particular line

sort -t. -k1,1n -k2,2n -k3,3n -k4,4n
Sort IPV4 ip addresses

echo 'Test' | tr '[:lower:]' '[:upper:]'
Case conversion

tr -dc '[:print:]' < /dev/urandom
Filter non printable characters

history | wc -l
Count lines

set operations (Note you can export LANG=C for speed. Also these assume no duplicate lines within a file)

sort file1 file2 | uniq
Union of unsorted files

sort file1 file2 | uniq -d
Intersection of unsorted files

sort file1 file1 file2 | uniq -u
Difference of unsorted files

sort file1 file2 | uniq -u
Symmetric Difference of unsorted files

join -a1 -a2 file1 file2
Union of sorted files

join file1 file2
Intersection of sorted files

join -v2 file1 file2
Difference of sorted files

join -v1 -v2 file1 file2
Symmetric Difference of sorted files


echo '(1 + sqrt(5))/2' | bc -l
Quick math (Calculate φ). See also bc

echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bc
More complex (int) e.g. This shows max FastE packet rate

echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | python
Python handles scientific notation

echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist
Plot FastE packet rate vs packet size

echo 'obase=16; ibase=10; 64206' | bc
Base conversion (decimal to hexadecimal)

echo $((0x2dec))
Base conversion (hex to dec) ((shell arithmetic expansion))

units -t '100m/9.69s' 'miles/hour'
Unit conversion (metric to imperial)

units -t '500GB' 'GiB'
Unit conversion (SI to IEC prefixes)

units -t '1 googol'
Definition lookup

seq 100 | (tr '\n' +; echo 0) | bc
Add a column of numbers. See also add and funcpy


cal -3
Display a calendar

cal 9 1752
Display a calendar for a particular month year

date -d fri
What date is it this friday. See also day

[ $(date -d "tomorrow" +%d) = "01" ] || exit
exit a script unless it's the last day of the month

date --date='25 Dec' +%A
What day does xmas fall on, this year

date --date='@2147483647'
Convert seconds since the epoch (1970-01-01 UTC) to date

TZ=':America/Los_Angeles' date
What time is it on West coast of US (use tzselect to find TZ)

echo "mail -s 'get the train' < /dev/null" | at 17:45
Email reminder

echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW + 30 minutes"
Popup reminder


printf "%'d\n" 1234
Print number with thousands grouping appropriate to locale

BLOCK_SIZE=\'1 ls -l
get ls to do thousands grouping appropriate to locale

echo "I live in `locale territory`"
Extract info from locale database

LANG=en_IE.utf8 locale int_prefix
Lookup locale info for specific country. See also ccodes

locale | cut -d= -f1 | xargs locale -kc | less
List fields available in locale database

recode (Obsoletes iconv, dos2unix, unix2dos)

recode -l | less
Show available conversions (aliases on each line)

recode windows-1252.. file_to_change.txt
Windows "ansi" to local charset (auto does CRLF conversion)

recode utf-8/CRLF.. file_to_change.txt
Windows utf8 to local charset

recode iso-8859-15..utf8 file_to_change.txt
Latin9 (western europe) to utf8

recode ../b64 < file.txt > file.b64
Base64 encode

recode /qp.. < file.txt > file.qp
Quoted printable decode

recode ..HTML < file.txt > file.html
Text to HTML

recode -lf windows-1252 | grep euro
Lookup table of characters

echo -n 0x80 | recode latin-9/x1..dump
Show what a code represents in latin-9 charmap

echo -n 0x20AC | recode ucs-2/x2..latin-9/x
Show latin-9 encoding

echo -n 0x20AC | recode ucs-2/x2..utf-8/x
Show utf-8 encoding


gzip < /dev/cdrom > cdrom.iso.gz
Save copy of data cdrom

mkisofs -V LABEL -r dir | gzip > cdrom.iso.gz
Create cdrom image from contents of dir

mount -o loop cdrom.iso /mnt/dir
Mount the cdrom image at /mnt/dir (read only)

cdrecord -v dev=/dev/cdrom blank=fast
Clear a CDRW

gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom -
Burn cdrom image (use dev=ATAPI -scanbus to confirm dev)

cdparanoia -B
Rip audio tracks from CD to wav files in current dir

cdrecord -v dev=/dev/cdrom -audio *.wav
Make audio CD from all wavs in current dir (see also cdrdao)

oggenc --tracknum='track' track.cdda.wav -o 'track.ogg'
Make ogg file from wav file

disk space (See also FSlint)

ls -lSr
Show files by size, biggest last

du -s * | sort -k1,1rn | head
Show top disk users in current dir. See also dutop

df -h
Show free space on mounted filesystems

df -i
Show free inodes on mounted filesystems

fdisk -l
Show disks partitions sizes and types (run as root)

rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n
List all packages by installed size (Bytes) on rpm distros

dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n
List all packages by installed size (KBytes) on deb distros

dd bs=1 seek=2TB if=/dev/null of=ext3.test
Create a large test file (taking no space). See also truncate

> file
truncate data of file or create an empty file


tail -f /var/log/messages
Monitor messages in a log file

strace -c ls >/dev/null
Summarise/profile system calls made by command

strace -f -e open ls >/dev/null
List system calls made by command

ltrace -f -e getenv ls >/dev/null
List library calls made by command

lsof -p $$
List paths that process id has open

lsof ~
List processes that have specified path open

tcpdump not port 22
Show network traffic except ssh. See also tcpdump_not_me

ps -e -o pid,args --forest
List processes in a hierarchy

ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'
List processes by % cpu usage

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
List processes by mem usage. See also

ps -C firefox-bin -L -o pid,tid,pcpu,state
List all threads for a particular process

ps -p 1,2
List info for particular process IDs

last reboot
Show system reboot history

free -m
Show amount of (remaining) RAM (-m displays in MB)

watch -n.1 'cat /proc/interrupts'
Watch changeable data continuously

system information (see also sysinfo) ('#' means root access is required)

uname -a
Show kernel version and system architecture

head -n1 /etc/issue
Show name and version of distribution

cat /proc/partitions
Show all partitions registered on the system

grep MemTotal /proc/meminfo
Show RAM total seen by the system

grep "model name" /proc/cpuinfo
Show CPU(s) info

lspci -tv
Show PCI info

lsusb -tv
Show USB info

mount | column -t
List mounted filesystems on the system (and align output)

grep -F capacity: /proc/acpi/battery/BAT0/info
Show state of cells in laptop battery

dmidecode -q | less
Display SMBIOS/DMI information

smartctl -A /dev/sda | grep Power_On_Hours
How long has this disk (system) been powered on in total

hdparm -i /dev/sda
Show info about disk sda

hdparm -tT /dev/sda
Do a read speed test on disk sda

badblocks -s /dev/sda
Test for unreadable blocks on disk sda

interactive (see also linux keyboard shortcuts)

Line editor used by bash, python, bc, gnuplot, ...

Virtual terminals with detach capability, ...

Powerful file manager that can browse rpm, tar, ftp, ssh, ...

Interactive/scriptable graphing

Web browser

open a file or url with the registered desktop application


alias hd='od -Ax -tx1z -v'
Handy hexdump. (usage e.g.: • hd /proc/self/cmdline | less)

alias realpath='readlink -f'
Canonicalize path. (usage e.g.: • realpath ~/../$USER)

set | grep $USER
Search current environment

touch -c -t 0304050607 file
Set file timestamp (YYMMDDhhmm)

python -m SimpleHTTPServer
Serve current directory tree at http://$HOSTNAME:8000/

Wednesday, 6 May 2009

basic linux printer management

lpstat will give you a list of outstanding printer jobs

There are various switches for this command, I use –a (all) and –l (long listing) and –d (destination) a lot. 

lp will print somethinglp –d

cancel will anti lp something

Tuesday, 5 May 2009

64 bit oracle, 64 bit windows, what are the limitations

This took me a long time to find.  I don’t really know why…  Perhaps I’m a little thick…

Anyway, I wanted to find something that would unequivocally tell me that I can have an SGA of 32GB (or some other very large number) using oracle 10G 64 bit with windows 64bit OS.  I could not find it anywhere, until…  I found it on a blog…  Doh.

Let me know if you know where I can get it from the horses mouth (so to speak).

General Memory Limits



Total Virtual Address Space

4 GB

16 TB

Virtual Address Space per 32-bit process

2GB (3 GB if system is booted with /3gb switch)

4GB if compiled with /LARGEADDRESSAWARE 2GB otherwise

Virtual Address Space per 64-bit process

Not applicable

8 TB

Paged Pool

470 MB

128 GB

Non-Paged Pool

256 MB

128 GB

System Cache

1 GB

1 TB

Physical Memory and CPU Limits



Windows Compute Cluster Server 2003


32 GB / 1-4 CPUs

Windows Server 2003 Standard Edition

4 GB / 1-4 CPUs

32 GB / 1-4 CPUs

Windows Server 2003 Enterprise Edition

64 GB / 1-8 CPUs

1 TB / 1-8 CPUs

Windows Server 2003 Datacenter Edition

64 GB / 1-32 CPUs

1 TB / 1-64 CPUs

EnterpriseOne ie6 freeze processing

Client machines need the following setting if they are using ie and are freezing their sessions with the “processing” graphic…  It’s not processing…

1. Open regedit.exe
2. Navigate to [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
3. Add a new DWORD entry named "MaxConnectionsPerServer"
4. Set the value of this new key to Decimal "10" or Hexadecimal "a"
5. Add a new DWORD entry named "MaxConnectionsPer1_0Server"
6. Set the value of this new key to Decimal "10" or Hexadecimal "a"
7. Close "regedit.exe" and restart you browser

You also might want to look at what the virus scanner is doing in the browser, look at the scanner output while you are browsing through JDE, make sure it’s not going crazy.

Also make sure that you have fixpack 21 for WAS 6.1 – especially for the plugins.  This prevents a plethora of HTTP 500 and HTTP 400 errors