Archive for April, 2009

TIBCO Designer with external memory window

During Research for my last blog post I found an interesting feature of the designer. If the designer uses more than one gigabyte of heap memory, the display of the memory usage gets a bit fuzzy.
Obviously somebody at TIBCO forgot to round the value, so it would fit into this small section of the status bar.
Keeping that in mind I found a start parameter which allows you to start the designer with an external window which only displays the current memory load.
As you can see this is much more useful then the default.
To get this you just have to start the designer with the following command:

./designer -memory

I wonder how much more (undocumented) functionality is hidden in the designer.


1 Comment

improve TIBCO Designer tester performance under linux

I’m using the TIBCO designer for quite a while now. Before using it in a debian environment I developed all TIBCO related stuff in Windows XP. Now with the switch to linux there came quite a shift in user experience. One thing that really annoyed me was the slow performance of the designer debugger.
So I started some measurements with a simple test process. The test process creates a simple list of all files (2000 items) in one folder and then iterates over every entry. Here is what I got:

Windows XP: 194sec
Windows XP (minimized): 6sec
Gnome: 470sec
Gnome (minimized): 4sec

All this data was gathered with the same default installation of a TIBCO designer 5.6 with the default java runtime. The configs were all left untouched. So now I tried to find something to improve that behavior. I first concentrated on how to influence the jvm.
After a bit of research in the TIBCO direction a found the following value in the tra-file which allows the user to pass parameters directly to the jvm:

With that information I tried several parameters suggested by google. After a few tries I came to this one:


What Sun says about it isn’t really clear to me but it helps drastically to improve performance. Back to my original test I came up with the following timings:

Gnome (pmoffscreen=false): 75sec
Gnome (pmoffscreen=false): 5sec

As you can see it actually surpasses the Windows installation. That was a result I didn’t actually expect. Till now I found no drawback to this solution.
Just for the sake of completeness here my full config line of the designer.tra -Xmx3072M -Xms1536M -XX:+AggressiveOpts -XX:-UseParallelGC -XX:-UseConcMarkSweepGC -XX:MaxPermSize=512M -XX:+UseFastAccessorMethods -Xverify:none -Dsun.java2d.pmoffscreen=false

, , ,


what’s the sitch

As I have a lot to do right am not really coming closer to my goal to write a general purpose app which can pull data from the yahoo streaming server. So I decided to post a few facts about the yahoo api. I hope this helps someone developing his app. So lets see what we have. First an explanation of these cryptic symbols:

a00: ask price
b00: bid price
g00: day’s range low
h00: day’s range high
j10: market cap
v00: volume
a50: ask size
b60: bid size
b30: ecn bid
o50: ecn bid size
z03: ecn ext hr bid
z04: ecn ext hr bid size
b20: ecn ask
o40: ecn ask size
z05: ecn ext hr ask
z07: ecn ext hr ask size
h01: ecn day’s high
g01: ecn day’s low
h02: ecn ext hr day’s high
g11: ecn ext hr day’s low
t10: last trade time, will be in unix epoch format
t50: ecnQuote/last/time
t51: ecn ext hour time
t53: RTQuote/last/time
t54: RTExthourQuote/last/time
l10: last trade
l90: ecnQuote/last/value
l91: ecn ext hour price
l84: RTQuote/last/value
l86: RTExthourQuote/last/value
c10: quote/change/absolute
c81: ecnQuote/afterHourChange/absolute
c60: ecnQuote/change/absolute
z02: ecn ext hour change
z08: ecn ext hour change
c63: RTQuote/change/absolute
c85: RTExthourQuote/afterHourChange/absolute
c64: RTExthourQuote/change/absolute
p20: quote/change/percent
c82: ecnQuote/afterHourChange/percent
p40: ecnQuote/change/percent
p41: ecn ext hour percent change
z09: ecn ext hour percent change
p43: RTQuote/change/percent
c86: RTExtHourQuote/afterHourChange/percent
p44: RTExtHourQuote/change/percent

These are the ones I found in the javascript sources. For most of it I don’t have a clue what it is for so don’t ask me what it means.

Next thing I want to mention is the result. A general approach would be to request your data and then run it through a proper JSON parser so you can work with the data as an object. Luckily this doesn’t work. The JSON returned is not 100 percent compliant with the JSON definition. Yahoo packs these symbols (seen above) not into quotes, so the parser denies to read it. A simple way around it is to string replace all possible symbols with quotes.

That’s it so far. I will post more if I have new information to share.