ColumnMap, need help

Hello!

I use 3.4.4. (why not 3.6.0 is subject for another letter).

I’m try to speed up queue (search result) drawing procedure by
using advanteges of oracle.

For this I create VIEW, which contain same fields as table Tickets and
some additional
fields.

Also I create ‘class’ ViewTicket (based on RT::Record and my View as
Table) and ViewTickets.

To use this class for view only way I also create

./local/html/Elements/CollectionAsTable/ViewRow
./local/html/Elements/RT__Ticket/ViewColumnMap
./local/html/Elements/ViewTicketList

./local/html/Search/Results.html is edited to use ‘ViewTicketList’ to
show tickets list table
./local/html/Elements/ViewTicketList -> ‘ViewRow’ to show row of
tickets list table

I receive all I want Search result are drawed more quickly (on
bussines hours more x5 time faster in compare to original realization).

But have a little problems. Some times some of users right after login
or during work receive error before drawing MyTickets section.
After call HomePage. The error looks in next way:

error: RT::ticket::QueueName Unimplemented in
HTML::Mason::Commands. (/usr/local/rt
/local/html/Elements/RT__Ticket/ViewColumnMap line 117)
context:

492: else {
493: my ( $package, $filename, $line );
494: ( $package, $filename, $line ) = caller;
495:
496: die “$AUTOLOAD Unimplemented in $package. ($filename line $line)
\n”;
497: }
498:
499: }
500:

code stack:
/usr/lib/perl5/site_perl/5.8.7/DBIx/SearchBuilder/Record.pm:496
/usr/local/rt/local/html/Elements/RT__Ticket/ViewColumnMap:117
/usr/local/rt/local/html/Elements/TicketList:68
/usr/local/rt/local/html/Elements/MyTickets:49
/usr/local/rt/share/html/Elements/TitleBox:48
/usr/local/rt/local/html/Elements/MyTickets:58
/usr/local/rt/share/html/index.html:80
/usr/local/rt/share/html/autohandler:215

As I understand - RT::Ticket is used for work with tickets but hiddely
it is mapped (due to mason::cache or session ??)
to RT::Ticket ColumnMap.

Please help me find what I forget.

(all files are avaible at ftp://mag.caravan.ru/pub/RT3.4.4/ViewTicket )

Hello!

I use 3.4.4. (why not 3.6.0 is subject for another letter).
In 3.4.5 we have implemented performance improvement in ACL checks by
splitting one badly joined query into two subcequent. I don’t know if
it works for oracle, but sure it worth to try. Also I sent patch for
3.4.5 to the rt-devel@ which should drop number of queries and make
ACL cache more effective, again worth to try.

I’m try to speed up queue (search result) drawing procedure by
using advanteges of oracle.
Without profiling you work is useless, unless you know where is
bottleneck you’re wasting time. Change you’re trying to do wouldn’t
help you much :frowning: as name of the queue is not full object so you have
to fetch full queue’s record and create object, but I think to
implement this you have to change DBIx::SB or at least override some
low -level methods in RT::Ticket.
Anyway once process during request created object of a queue, code can
fetch this object from cache without requests to the DB. I think
you’re moving in wrong direction, too high cost for miracle
improvement. There is much more ways to improve performance.

For this I create VIEW, which contain same fields as table Tickets and
some additional
fields.

Also I create ‘class’ ViewTicket (based on RT::Record and my View as
Table) and ViewTickets.

To use this class for view only way I also create

./local/html/Elements/CollectionAsTable/ViewRow
./local/html/Elements/RT__Ticket/ViewColumnMap
./local/html/Elements/ViewTicketList

./local/html/Search/Results.html is edited to use ‘ViewTicketList’ to
show tickets list table
./local/html/Elements/ViewTicketList -> ‘ViewRow’ to show row of
tickets list table

I receive all I want Search result are drawed more quickly (on
bussines hours more x5 time faster in compare to original realization).

But have a little problems. Some times some of users right after login
or during work receive error before drawing MyTickets section.
After call HomePage. The error looks in next way:

error: RT::ticket::QueueName Unimplemented in
HTML::Mason::Commands. (/usr/local/rt
/local/html/Elements/RT__Ticket/ViewColumnMap line 117)
context:

492: else {
493: my ( $package, $filename, $line );
494: ( $package, $filename, $line ) = caller;
495:
496: die “$AUTOLOAD Unimplemented in $package. ($filename line $line)
\n”;
497: }
498:
499: }
500:

code stack:
/usr/lib/perl5/site_perl/5.8.7/DBIx/SearchBuilder/Record.pm:496
/usr/local/rt/local/html/Elements/RT__Ticket/ViewColumnMap:117
/usr/local/rt/local/html/Elements/TicketList:68
/usr/local/rt/local/html/Elements/MyTickets:49
/usr/local/rt/share/html/Elements/TitleBox:48
/usr/local/rt/local/html/Elements/MyTickets:58
/usr/local/rt/share/html/index.html:80
/usr/local/rt/share/html/autohandler:215

=========

As I understand - RT::Ticket is used for work with tickets but hiddely
it is mapped (due to mason::cache or session ??)
to RT::Ticket ColumnMap.

Please help me find what I forget.

(all files are avaible at ftp://mag.caravan.ru/pub/RT3.4.4/ViewTicket )


List info: http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel

Best Practical is hiring! Come hack Perl for us: http://bestpractical.com/about/jobs.html

Best regards, Ruslan.