Re: Converting web-application from Illustra to Informix Univ.Server
Posted in 1997
Im forwarding over this to the mailing list. A few people here at KOZ
answered a question from the informix mailing list. The following two
attachments are some answers to the question. (BTW, these people
arent on the mailing list).
Here is the original question:
>
> Hello,
>
> Does anybody have any experience converting a web-application
> (built with the illustra application page builder)
> to the Informix universal server (also with the web datablade)?
>
> I allready have a document that covers such an conversion, but
> I would like to know if someone has really done it, and
> can tell me what to watch out for.
>
> thank you verry much.
>
> Micha Haas
>
==================================================
1st reply
==================================================
------- Start of forwarded message -------
Return-Path: <j.k.morgan@computer.org>
We just finished the port of an application consisting of over 200
web datablade application pages. The difficulty depends on how
hard you're driving the web datablade & how much use you make
of the OO aspects of Illustra. We have an application that makes
very heavy use of the web datablade & we went through a lot of
agony helping Informix get some nasty bugs out of the IUS web
datablade. The Informix engineers were incredibly helpful in
getting the problems fixed ASAP - I've worked DB problems
with Oracle, DB2, Sybase, etc. and never seen engineers bust
their behinds the way the Informix folks did to get us up &
running.. Make sure you have the most recent version with all
current patches. It's very stable now.
One problem was the lack of a multi-representational data
type for large text fields. We had to implement our own.
Another set of problems revolve around syntactic/semantic
differences between the Illustra and IUS versions of the web
data blade. The biggest problem is a 32k limit on any web
page being pushed out of the engine.
The following is a cut&paste from our Illustra->IUS 'gotchas' notes file.
Syntax differences between Illustra and IUS requiring changes in our Web
Application Pages and Tags:
1) In IUS functions that don't return a value are called PROCEDURES
2) Procedure invocation changes - instead of 'return foo(...); ' use 'execute
procedure foo(...)'
3) Old-style conditional syntax ($1.gt.0) doesn't work - use $(>,$1,0)
instead
4) In at least some cases you must use symbols instead of EQ, NE, GT in
conditionals
5) column aliasing doesn't work properly. In the statement:
SELECT foo, UPPER(foo) as upname from a where upname = 'BAR'; fails on two counts. First, IUS doesn't want the word 'as' in the aliasing
phrase. Also, the use of 'upname' in the where clause won't be recognized.
6) IUS doesn't provide upper, lower, and so forth functions.
7) In COND clauses it's not safe to compare an integer value to '1'. It
seems that they're being interpreted as fixed point values and '1.000000'
doesn't match '1'.
For example, the following will fail in all cases, whether count is 0 or
greater than 0:
<?MISQL SQL="SELECT COUNT(*) WHERE ...;><?/MISQL>
<?MIBLOCK COND=$(=,$1,0)>
8) Passing long environment strings on TEMPLATE invocations sometimes doesn't
work. That is:
<?TEMPLATE NAME='foo',PARAMS='very long environment string'> blows up
if the 'very long environment string' is sufficiently long ( it also blows up
iff it contains a
redefinition of a variable already defined in the surrounding environment
9) Function, procedure, table, (and apparently damn near everything else)
names must be no more than 18 characters long.
10) using '$*' to reference all columns of a SELECT statement doesn't work.
For example, checking for a null return by:
SELECT foo1, foo2 FROM bar WHERE.....; <?MIBLOCK COND=$(NE,$*,) .........
Doesn't work.
11) Comparing to "" to detect nulls in COND statements doesn't work:
COND=$(EQ,$foo,"")
should be changed to
COND=$(EQ,$foo,)
On the positive side, IUS has real stored procedures, so we were
able to replace a whole bunch of c code and very ugly macros involving
recursive web explodes with much simpler, easier to maintain SPL
stored procedures.
On the whole, we like the IUS version much better than the Illustra
version now that we've converted over, You shouldn't have as
much trouble porting as we had since the current web datablade &
server engine are much more stable than when we started our port
about a year ago.
Keith Morgan
VP Systems Operations
KOZ, inc
6340 Quadrangle Drive, Bldg 4, Ste 75
Chapel Hill, NC 27514
j.k.morgan@computer.org or keithm@koz.com
==================================================
2nd internal reply
==================================================
Return-Path: <chris@koz.com>
The biggest pain in the neck was the " " around the COND statement. You did
not need them in Illustra.
I would tell him to always use " " around his COND statement.
Also the bug with using mivariables inside an "IF" statement inside an
misql.
Where the mivariables will not get evaluated.
==================================================
--
Thomas Tatum
thomas@rtp.koz.com
919-489-5662 x32
919-602-6521