Sybase NNTP forums - End Of Life (EOL)

The NNTP forums from Sybase - forums.sybase.com - are now closed.

All new questions should be directed to the appropriate forum at the SAP Community Network (SCN).

Individual products have links to the respective forums on SCN, or you can go to SCN and search for your product in the search box (upper right corner) to find your specific developer center.

Why the HTMLDW stops working after some time

9 posts in General Discussion (old) Last posting was on 2000-03-31 16:22:32.0Z
Tim Nesham Posted on 2000-03-28 15:08:30.0Z
Newsgroups: sybase.public.easerver
From: "Tim Nesham" <tim.nesham@born.com>
Subject: Why the HTMLDW stops working after some time
Date: Tue, 28 Mar 2000 09:08:30 -0600
Lines: 14
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
X-Original-NNTP-Posting-Host: 161.49.6.89
Organization: Quad/Graphics,Inc.
NNTP-Posting-Host: dns2.qgraph.com 206.158.124.2
Message-ID: <347_38e0caf3@news.qgraph.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com!news.qgraph.com!161.49.6.89
Xref: forums-1-dub sybase.public.easerver:25486
Article PK: 155569

After retrieving data through the HTMLDW Generator the generator fails to
generate. Nothing is returned from the HTMLDW until we restart Jaguar.
This happens after about 100 retrieves. Cannot determine the exact number at
this time. Has anyone else seen this? Has anyone fixed this?

But what is stranger still, it is only certain DW objects. That is, some
generate and others don't.


TIA,

Tim


Larry Cermak[Team Sybase] Posted on 2000-03-30 01:43:37.0Z
Newsgroups: sybase.public.easerver
From: "Larry Cermak[Team Sybase]" <lcermak@ctpartners.com>
Subject: Re: Why the HTMLDW stops working after some time
Date: Wed, 29 Mar 2000 19:43:37 -0600
Lines: 33
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
NNTP-Posting-Host: node18.dhcpchi.dslspeed.zyan.com 208.41.199.18
Message-ID: <347_Sw79nrem$GA.52@forums.sybase.com>
References: <347_38e0caf3@news.qgraph.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com
Xref: forums-1-dub sybase.public.easerver:25276
Article PK: 154284

DO you see anything back in the page, perhaps "null"? Check to make sure
your component is disconnecting from the database.

--

Larry Cermak [Team Sybase]
Corporate Technology Partners, Inc.
www.ctpartners.com
Web DataWindow Articles
(http://sdn.sybase.com/sdn/appdev/get_doc.stm?loc=1001708)

Web DataWindow Training
EAServer Training

"Tim Nesham" <tim.nesham@born.com> wrote in message
news:38e0caf3@news.qgraph.com...
> After retrieving data through the HTMLDW Generator the generator fails to
> generate. Nothing is returned from the HTMLDW until we restart Jaguar.
> This happens after about 100 retrieves. Cannot determine the exact number
at
> this time. Has anyone else seen this? Has anyone fixed this?
>
> But what is stranger still, it is only certain DW objects. That is, some
> generate and others don't.
>
>
> TIA,
>
> Tim
>
>


Tim Nesham Posted on 2000-03-30 13:59:20.0Z
Newsgroups: sybase.public.easerver
From: "Tim Nesham" <tim.nesham@born.com>
Subject: Re: Why the HTMLDW stops working after some time
Date: Thu, 30 Mar 2000 07:59:20 -0600
Lines: 42
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
X-Original-NNTP-Posting-Host: 161.49.6.89
Organization: Quad/Graphics,Inc.
NNTP-Posting-Host: dns2.qgraph.com 206.158.124.2
Message-ID: <347_38e35dbd@news.qgraph.com>
References: <347_38e0caf3@news.qgraph.com> <347_Sw79nrem$GA.52@forums.sybase.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com!news.qgraph.com!161.49.6.89
Xref: forums-1-dub sybase.public.easerver:25243
Article PK: 155367

Absolutely nothing. But the pooling option affected it.

"Larry Cermak[Team Sybase]" <lcermak@ctpartners.com> wrote in message
news:Sw79nrem$GA.52@forums.sybase.com...
> DO you see anything back in the page, perhaps "null"? Check to make sure
> your component is disconnecting from the database.
>
> --
>
> Larry Cermak [Team Sybase]
> Corporate Technology Partners, Inc.
> www.ctpartners.com
> Web DataWindow Articles
> (http://sdn.sybase.com/sdn/appdev/get_doc.stm?loc=1001708)
>
> Web DataWindow Training
> EAServer Training
>
> "Tim Nesham" <tim.nesham@born.com> wrote in message
> news:38e0caf3@news.qgraph.com...
> > After retrieving data through the HTMLDW Generator the generator fails
to
> > generate. Nothing is returned from the HTMLDW until we restart Jaguar.
> > This happens after about 100 retrieves. Cannot determine the exact
number
> at
> > this time. Has anyone else seen this? Has anyone fixed this?
> >
> > But what is stranger still, it is only certain DW objects. That is,
some
> > generate and others don't.
> >
> >
> > TIA,
> >
> > Tim
> >
> >
>
>


Michael Posted on 2000-03-31 05:16:18.0Z
Newsgroups: sybase.public.easerver
From: "Michael" <mlin@firstam.com>
Subject: Re: Why the HTMLDW stops working after some time
Date: Thu, 30 Mar 2000 21:16:18 -0800
Lines: 249
X-Newsreader: Microsoft Outlook Express 4.72.2106.4
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
NNTP-Posting-Host: pixout.firstam.com 209.211.240.254
Message-ID: <347_F83mMEtm$GA.298@forums.sybase.com>
References: <347_38e0caf3@news.qgraph.com> <347_Sw79nrem$GA.52@forums.sybase.com> <347_38e35dbd@news.qgraph.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com
Xref: forums-1-dub sybase.public.easerver:25145
Article PK: 154244

Hi,

We have a similar problem with our our grid datawindows in production. I've
been doing a lot of research on this because the only way to fix this
problem is to restart Jaguar, which is not acceptable in the middle of the
day.

Here's what I found so far. I've turned on the trace for the HTML
datawindow object by setting the com.sybase.datawindow.trace property (you
have to add it) to "yes". This will make any HTMLDatawindow operation dump
trace information into srv.log.

Here's a copy of a "normal" HTML retrieve without any problem:

HTMLDW: Remote DataWindow Component logging enabled
HTMLDW: Default Library List = 'pbdwr70.pbd'
HTMLDW: Loaded component properties:
HTMLDW: sourceFileName = ''
HTMLDW: dwObjectName = ''
HTMLDW: HTMLObjectName = ''
HTMLDW: modifyString = ''
HTMLDW: fixed = 'no'
HTMLDW: serverSideState = 'no'
HTMLDW: trans.dbms = ''
HTMLDW: trans.dbparm = ''
HTMLDW: trans.lock = ''
HTMLDW: trans.logid = ''
HTMLDW: trans.logpass = ''
HTMLDW: trans.database = ''
HTMLDW: trans.servername = ''
HTMLDW: serverServiceClasses = ''
HTMLDW: Activate()
HTMLDW: Entering SetDWObject('DWBag.pbl','d_citylookup')
HTMLDW: Doing PBL/PBD
HTMLDW: SetLibraryList(pbdwr70.pbd,DWBag.pbl) = 1
HTMLDW: Entering Modify('DataWindow.htmldw='yes'
DataWindow.NoUserPrompt='yes'')
HTMLDW: Exiting Modify() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering of_initializeFromDeclarative()
HTMLDW: Exiting of_initializeFromDeclarative() = 1
HTMLDW: Exiting SetDWObject() = 1
HTMLDW: EnableCommit()
HTMLDW: Entering SetTrans()
HTMLDW: Exiting SetTrans() = 1
HTMLDW: EnableCommit()
HTMLDW: Entering SetWeight()
HTMLDW: Exiting SetWeight() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering SetPageSize(18)
HTMLDW: Exiting SetPageSize() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering SetHTMLObjectName('htmlDW')
HTMLDW: Exiting SetHTMLObjectName() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering SetBrowser('Mozilla/4.0 (compatible; MSIE 4.01; Windows
98)')
HTMLDW: Exiting SetBrowser() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering
SetSelfLink('citylookup.htm','LoanNumber='""'|OrderNumber='""'|PropertyAddre
ss='""'|PropertyCity='"carlsbad"'|PropertyState='""'|PropertyZip='""'')
HTMLDW: Exiting SetSelfLink() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering RetrieveEx('-1
%
%
%
%
carlsbad%
%
%')
HTMLDW: Exiting RetrieveEx() = 246
HTMLDW: EnableCommit()
HTMLDW: Entering Generate()
HTMLDW: Exiting Generate(), length = 43371
HTMLDW: SetComplete()
HTMLDW: Entering Deactivate()
HTMLDW: resetting state
HTMLDW: Exiting Deactivate()
HTMLDW: Destructor()

Here's the same snippet of trace log WITH the disappearance problem:

HTMLDW: Remote DataWindow Component logging enabled
HTMLDW: Default Library List = 'pbdwr70.pbd'
HTMLDW: Loaded component properties:
HTMLDW: sourceFileName = ''
HTMLDW: dwObjectName = ''
HTMLDW: HTMLObjectName = ''
HTMLDW: modifyString = ''
HTMLDW: fixed = 'no'
HTMLDW: serverSideState = 'no'
HTMLDW: trans.dbms = ''
HTMLDW: trans.dbparm = ''
HTMLDW: trans.lock = ''
HTMLDW: trans.logid = ''
HTMLDW: trans.logpass = ''
HTMLDW: trans.database = ''
HTMLDW: trans.servername = ''
HTMLDW: serverServiceClasses = ''
HTMLDW: Activate()
HTMLDW: Entering SetDWObject('DWBag.pbl','d_citylookup')
HTMLDW: Doing PBL/PBD
HTMLDW: SetLibraryList(pbdwr70.pbd,DWBag.pbl) = 1
HTMLDW: Entering Modify('DataWindow.htmldw='yes'
DataWindow.NoUserPrompt='yes'')
HTMLDW: Exiting Modify() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering of_initializeFromDeclarative()
HTMLDW: Exiting of_initializeFromDeclarative() = 1
HTMLDW: Exiting SetDWObject() = 1
HTMLDW: EnableCommit()
HTMLDW: Entering SetTrans()
HTMLDW: Exiting SetTrans() = 1
HTMLDW: EnableCommit()
HTMLDW: Entering SetWeight()
HTMLDW: Exiting SetWeight() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering SetPageSize(18)
HTMLDW: Exiting SetPageSize() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering SetHTMLObjectName('htmlDW')
HTMLDW: Exiting SetHTMLObjectName() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering SetBrowser('Mozilla/4.0 (compatible; MSIE 4.01; Windows
98)')
HTMLDW: Exiting SetBrowser() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering
SetSelfLink('citylookup.htm','LoanNumber='""'|OrderNumber='""'|PropertyAddre
ss='""'|PropertyCity='"carlsbad"'|PropertyState='""'|PropertyZip='""'')
HTMLDW: Exiting SetSelfLink() = ''
HTMLDW: EnableCommit()
HTMLDW: Entering RetrieveEx('-1
%
%
%
%
carlsbad%
%
%')
HTMLDW: Exiting RetrieveEx() = 246
HTMLDW: EnableCommit()
HTMLDW: Destructor()
HTMLDW: Remote DataWindow Component logging enabled
HTMLDW: Default Library List = 'pbdwr70.pbd'
HTMLDW: Loaded component properties:
HTMLDW: sourceFileName = ''
HTMLDW: dwObjectName = ''
HTMLDW: HTMLObjectName = ''
HTMLDW: modifyString = ''
HTMLDW: fixed = 'no'
HTMLDW: serverSideState = 'no'
HTMLDW: trans.dbms = ''
HTMLDW: trans.dbparm = ''
HTMLDW: trans.lock = ''
HTMLDW: trans.logid = ''
HTMLDW: trans.logpass = ''
HTMLDW: trans.database = ''
HTMLDW: trans.servername = ''
HTMLDW: serverServiceClasses = ''
HTMLDW: Entering Generate()
HTMLDW: Exiting Generate(), length = 0
HTMLDW: SetComplete()
HTMLDW: Entering Deactivate()
HTMLDW: resetting state
HTMLDW: Exiting Deactivate()
HTMLDW: Destructor()

It looks like the HTMLDW object always think that it's finished right after
the retrieve and then destroys itself. But the next call to generate the
SQL would instantiate a new instance of HTMLDW but this new instance would
not have ANY of the data ready, so the Generate() function would simply
return a blank string, thus the disappearance of the datawindow.

This is NOT a problem if you have Instance Pooling on (but you'll have other
problems) because HTMLDW rarely needs to be Destroyed.

We've also found an easy way to reproduce this. Create a little PB window
with a button. In the button, make a connection to Jaguar, instantiate a
HTMLDatawindow object, and then call myHTMLDW.GetLastError(). Right after
this, the HTMLDatawindow object will destroy itself after retrieve but
before the generate function.

That was EAS 3.0. We've discovered that EAS 3.5 had resolved this problem.
However, the new HTMLDatawindow has a new problem. It would randomly insert
new blank columns into our grid datawindow, causing very undesirable results
on the website.

We ourselves are stuck right now. Staying with EAS 3.0 will cause us to
continue to restart Jaguar several times a day but going to 3.5 means ugly
grid datawindows. We are now seriously thinking about pulling off all
HTMLDatawindows.

Hope this helps...

Michael Lin
Leverage Consulting

Tim Nesham wrote in message <38e35dbd@news.qgraph.com>...
>Absolutely nothing. But the pooling option affected it.
>
>"Larry Cermak[Team Sybase]" <lcermak@ctpartners.com> wrote in message
>news:Sw79nrem$GA.52@forums.sybase.com...
>> DO you see anything back in the page, perhaps "null"? Check to make sure
>> your component is disconnecting from the database.
>>
>> --
>>
>> Larry Cermak [Team Sybase]
>> Corporate Technology Partners, Inc.
>> www.ctpartners.com
>> Web DataWindow Articles
>> (http://sdn.sybase.com/sdn/appdev/get_doc.stm?loc=1001708)
>>
>> Web DataWindow Training
>> EAServer Training
>>
>> "Tim Nesham" <tim.nesham@born.com> wrote in message
>> news:38e0caf3@news.qgraph.com...
>> > After retrieving data through the HTMLDW Generator the generator fails
>to
>> > generate. Nothing is returned from the HTMLDW until we restart Jaguar.
>> > This happens after about 100 retrieves. Cannot determine the exact
>number
>> at
>> > this time. Has anyone else seen this? Has anyone fixed this?
>> >
>> > But what is stranger still, it is only certain DW objects. That is,
>some
>> > generate and others don't.
>> >
>> >
>> > TIA,
>> >
>> > Tim
>> >
>> >
>>
>>
>
>


Tim Nesham Posted on 2000-03-31 14:07:42.0Z
Newsgroups: sybase.public.easerver
From: "Tim Nesham" <tim.nesham@born.com>
Subject: Re: Why the HTMLDW stops working after some time
Date: Fri, 31 Mar 2000 08:07:42 -0600
Lines: 14
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
X-Original-NNTP-Posting-Host: 161.49.6.89
Organization: Quad/Graphics,Inc.
NNTP-Posting-Host: dns2.qgraph.com 206.158.124.2
Message-ID: <347_38e4b132@news.qgraph.com>
References: <347_38e0caf3@news.qgraph.com> <347_Sw79nrem$GA.52@forums.sybase.com> <347_38e35dbd@news.qgraph.com> <347_F83mMEtm$GA.298@forums.sybase.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com!news.qgraph.com!161.49.6.89
Xref: forums-1-dub sybase.public.easerver:25120
Article PK: 154219

Thanks. Where you said:
<< This is NOT a problem if you have Instance Pooling on (but you'll have
other
<< problems) because HTMLDW rarely needs to be Destroyed

I would think that if a timelimit were put on the component that the
problems you allude to would not exist?

Thanks again, it does help.


Tim


Michael Posted on 2000-03-31 15:04:33.0Z
Newsgroups: sybase.public.easerver
From: "Michael" <mlin@firstam.com>
Subject: Re: Why the HTMLDW stops working after some time
Date: Fri, 31 Mar 2000 07:04:33 -0800
Lines: 37
X-Newsreader: Microsoft Outlook Express 4.72.2106.4
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
NNTP-Posting-Host: pixout.firstam.com 209.211.240.254
Message-ID: <347_34v05Mym$GA.52@forums.sybase.com>
References: <347_38e0caf3@news.qgraph.com> <347_Sw79nrem$GA.52@forums.sybase.com> <347_38e35dbd@news.qgraph.com> <347_F83mMEtm$GA.298@forums.sybase.com> <347_38e4b132@news.qgraph.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com
Xref: forums-1-dub sybase.public.easerver:25111
Article PK: 154210

Tim,

The "other" problem when you have instance pooling on is that once your
HTMLDW run into any kind of error (even just a simple SQL error like the
user typing in 11 characters where the database only allows 10 characters),
you'll get "NULL" back as the result for all your HTMLDWs. Consider a web
application where 10 seconds of downtime is to long, this is even less
acceptable. Also, I'm not sure if setting the time-limit on the component
life would actually resolve this problem either.

This brings up an interesting idea and I'll have to try it out. How about
turning the instance pooling on but leave the time-out to be immediate?
I'll give this a shot when I get a chance. If it works, I'll post the
results here.

Michael Lin
Leverage Consulting

Tim Nesham wrote in message <38e4b132@news.qgraph.com>...
>Thanks. Where you said:
><< This is NOT a problem if you have Instance Pooling on (but you'll have
>other
><< problems) because HTMLDW rarely needs to be Destroyed
>
>I would think that if a timelimit were put on the component that the
>problems you allude to would not exist?
>
>Thanks again, it does help.
>
>
>Tim
>
>


Tim Nesham Posted on 2000-03-31 15:27:42.0Z
Newsgroups: sybase.public.easerver
From: "Tim Nesham" <tim.nesham@born.com>
Subject: Re: Why the HTMLDW stops working after some time
Date: Fri, 31 Mar 2000 09:27:42 -0600
Lines: 8
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
X-Original-NNTP-Posting-Host: 161.49.6.89
Organization: Quad/Graphics,Inc.
NNTP-Posting-Host: dns2.qgraph.com 206.158.124.2
Message-ID: <347_38e4c3f3@news.qgraph.com>
References: <347_38e0caf3@news.qgraph.com> <347_Sw79nrem$GA.52@forums.sybase.com> <347_38e35dbd@news.qgraph.com> <347_F83mMEtm$GA.298@forums.sybase.com> <347_38e4b132@news.qgraph.com> <347_34v05Mym$GA.52@forums.sybase.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com!news.qgraph.com!161.49.6.89
Xref: forums-1-dub sybase.public.easerver:25101
Article PK: 154200

Try that, let me know.

Thanks.

Tim


Michael Posted on 2000-03-31 16:22:32.0Z
Newsgroups: sybase.public.easerver
From: "Michael" <mlin@firstam.com>
Subject: Re: Why the HTMLDW stops working after some time
Date: Fri, 31 Mar 2000 08:22:32 -0800
Lines: 19
X-Newsreader: Microsoft Outlook Express 4.72.2106.4
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
NNTP-Posting-Host: pixout.firstam.com 209.211.240.254
Message-ID: <347_fCb0e4ym$GA.52@forums.sybase.com>
References: <347_38e0caf3@news.qgraph.com> <347_Sw79nrem$GA.52@forums.sybase.com> <347_38e35dbd@news.qgraph.com> <347_F83mMEtm$GA.298@forums.sybase.com> <347_38e4b132@news.qgraph.com> <347_34v05Mym$GA.52@forums.sybase.com> <347_38e4c3f3@news.qgraph.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com
Xref: forums-1-dub sybase.public.easerver:25087
Article PK: 228455

Tim,

Just found out from Dave Wolf that there's no way to configure the time-out
of instance pooling so this idea is a no-go. Back to square one. Sigh...

Michael Lin
Leverage Consulting

Tim Nesham wrote in message <38e4c3f3@news.qgraph.com>...
>Try that, let me know.
>
>Thanks.
>
>Tim
>
>
>


Tim Nesham Posted on 2000-03-28 19:50:54.0Z
Newsgroups: sybase.public.easerver
From: "Tim Nesham" <tim.nesham@born.com>
Subject: Re: Why the HTMLDW stops working after some time
Date: Tue, 28 Mar 2000 13:50:54 -0600
Lines: 30
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2919.6600
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600
X-Original-NNTP-Posting-Host: 161.49.6.89
Organization: Quad/Graphics,Inc.
NNTP-Posting-Host: dns2.qgraph.com 206.158.124.2
Message-ID: <347_38e10d23@news.qgraph.com>
References: <347_38e0caf3@news.qgraph.com>
Path: forums-1-dub!forums-1-dub!forums-master.sybase.com!forums.sybase.com!news.qgraph.com!161.49.6.89
Xref: forums-1-dub sybase.public.easerver:25440
Article PK: 155527

Interesting, I turned Pooling back on for the DWGenerator and this problem
went away. But what is strange is that after watching the Runtime Monitor I
noticed only 1 instance pooled out of 13 instances active. I set the timeout
property to 60 seconds so instances were being removed. But none were pooled
beyond the one. At one point I had 13 instances active and none pooled yet
the problem I mentioned never resurfaced.

So what effect did pooling have if none were pooled??? Perhaps it was
happening so fast the refresh rate of 2seconds could not report what was
happening.

"Tim Nesham" <tim.nesham@born.com> wrote in message
news:38e0caf3@news.qgraph.com...
> After retrieving data through the HTMLDW Generator the generator fails to
> generate. Nothing is returned from the HTMLDW until we restart Jaguar.
> This happens after about 100 retrieves. Cannot determine the exact number
at
> this time. Has anyone else seen this? Has anyone fixed this?
>
> But what is stranger still, it is only certain DW objects. That is, some
> generate and others don't.
>
>
> TIA,
>
> Tim
>
>