Forum OpenACS Q&A: Re: Problem with newest xowiki

Posted by Janine Ohmer on
I'm attempting to install xowiki under Oracle with OpenACS 5.2 and it doesn't seem to work. Is it supposed to, or am I the first to try this?

The errors are as follows. I have applied the patches mentioned in the xotcl-core installation instructions as described at (I actually copied the entire bootstrap file from HEAD, because only part of the patch worked). The versions of xotcl-core and xowiki were freshly checked out from HEAD this afternoon.

I don't want to spend too much time trying to track down errors if the real problem is that Oracle isn't supported... if that's the case then I have a different issue to address.

1. The table pg_proc does not exist and there doesn't seem to be any equivalent for Oracle

2. Not sure what is causing this, but Claudio was reporting it also:

[03/Jan/2007:17:35:15][12244.16384][-main-] Error: Error sourcing /var/lib/aolserver/dodss-dev/packages/xowiki/tcl/xowiki-procs.tcl:
during '::xotcl::__#3 contains'
::xotcl::__#3 ::xotcl::Object->configure
::xo::OrderedComposite ::xotcl::Class->create
::xo::OrderedComposite ::xotcl::Class->new
invoked from within
"::xo::OrderedComposite new -contains [my cr_attributes]"
(procedure "init" line 8)
::xowiki::Page ::Generic::CrClass->init
::Generic::CrClass ::xotcl::Class->create
invoked from within
"::Generic::CrClass create Page -superclass ::Generic::CrItem -pretty_name "XoWiki Page" -pretty_plural "XoWiki Pages" -table_name "xowiki_page" -id_..."

3. Another one Claudio also saw:

[03/Jan/2007:17:35:15][12244.16384][-main-] Error: Error sourcing /var/lib/aolserver/dodss-dev/packages/xowiki/tcl/xowiki-www-procs.tcl:
invalid command name "File"
while executing
"File instproc download {} {
my instvar text mime_type package_id item_id revision_id
$package_id set mime_type $mime_type
set use_bg_deliv..."

4. And then when I actually go to /xowiki:

invalid command name "::xowiki::Object"
while executing
"::xowiki::Object create ::$folder_id"
(procedure "require_folder_object" line 27)
::1820 ::xowiki::Package->require_folder_object

Posted by Gustaf Neumann on

xowiki is not supposed to work under oracle, (the documentation say it at the end, but it might not be hopeless to get a resonable working version for it.

The error in your posting (the problem with "contains") comes from the test, checking whether db-tree is available (you could simply alter ::xowiki::has_ltree to return 0 in your installation, searching for a pendant for pg_proc makes no sense).

when has_ltree is 0, the new book-style won't work, but most of the other stuff will. it should be possible to find a way for this as well, but this requires more oracle know how than i have...

2 + 3 + 4 are consequences of the first problem.
This does not mean that everything will work after that: xowiki/xotcl-core query the database for the existance of tables, views and indices and creates this on demand. this must be ported. Then xotcl-core has low-level interfaces to the content repository. i am sure, they will need some work as well. For a good developer, who knows what she does, i would think this should be doable under one week (without looking into the details).

Well, and then, xowiki syndication depends on working search service-contracts, which fill the syndication table. Not sure, what the state of the intermedia drivers is...

Posted by Jose Agustin Lopez Bueno on
Hi, Gustaf!

I am having problems trying the install of xowiki portlet in
oacs 5.2 with postgres 8.2 with ltree contrib installed.
I have read all forums threads but I can not rid off the

Can you help me?

Xowiki Portlet Administration
Error in include template "/var/lib/aolserver/oacs_5_2/packages/xowiki-portlet/www/xowiki-admin-portlet": Transaction aborted: Database operation "dml" failed (exception NSDB, "Query was not a DML or DDL command.") SQL: insert into xowiki_objecti (item_id,revision_id,creation_user,title,description,mime_type,nls_language,text,page_order,creator) values ('17923357','17923356','506','::17923355',NULL,'text/plain','en_US','# this is the payload of the folder object #set index_page "index" ',NULL,NULL)
From postgres log:
insert into xowiki_objecti (item_id,revision_id,creation_user,title,description,mime_type,nls_language,text,page_order,creator) values ('17923013','17923012','506','::17922984',NULL,'text/plain','en_US','kkkk',NULL,NULL);
ERROR: null value in column "object_type" violates not-null constraint
CONTEXT: SQL statement "INSERT INTO acs_objects (object_id, object_type, title, package_id, context_id, creation_date, creation_user, creation_ip, security_inherit_p) values ( $1 , $2 , $3 , $4 , $5 , $6 , $7 , $8 , $9 )"
PL/pgSQL function "acs_object__new" line 40 at SQL statement
PL/pgSQL function "content_revision__new" line 33 at assignment
PL/pgSQL function "content_revision__new" line 15 at return
SQL statement "select content_revision__new( $1 , $2 , now(), $3 , $4 , case when $5 is null then $6 else $5 end, content_symlink__resolve( $7 ), $8 , now(), $9 , $10 , $11 )"
PL/pgSQL function "xowiki_object_f" line 5 at SQL statement

Posted by Gustaf Neumann on
You seem to have a mixed versions of several packages.
The error message says "Query was not a DML or DDL command." which means, that
  • you are using the postgres updates from openacs 5.3 to handle the deadlock problems (using stored procedures such as "xowiki_object_f" instead of the old postgres rewrite rules),
  • but you are using the core of 5.2, in which case xotcl-core uses the db_dml operation.
  • Correct?

    As long you have this configuration, look into xotcl-core/tcl/generic-procs and search for the insert_view_operation. uncomment the following line:

    #CrItem set insert_view_operation db_0or1row

    This command will set the db-operation to the given value, no matter what your acs-core says.

    Hope this helps!

    best regard
    -gustaf neumann

Posted by Jose Agustin Lopez Bueno on
Ok, Gustaf.

You are right in all!

This works ok now.
I'll test it and I'll tell you my comments.


Posted by Avni Khatri on
Gustaf -

Has anyone made progress with porting xowiki to oracle?
If not, I would like to do it because I want to use xowiki at UCLA.

I've installed xotcl-core and have a working openacs5.3.1 on oracle9i
and have checked out xowiki from HEAD

My first question is:
Where is: xowiki/xotcl-core??
There is no xotcl-core directory under the xowiki package and I don't see any xql files in the xowiki package. Can you point me to where the queries are?

Thanks much,
Avni :-)

Posted by Malte Sussdorff on
Hi Avni, just make a checkout of the xotcl-core package. If I remember correctly Gustaf mentioned it "should" work. Once xotcl-core is working in Oracle, XoWIKI should not be much of an issue, though you might have to wade through the /tcl directory and search for the SQL commands, but instantiate_sql_query (in XoTCL Core) should be smart enough to "only" return a working query string, unless it is overridden with the "-where_clause" parameter.

This all being said, I got it installed on Oracle after I cut down the description tag of as Oracle was complaining about "long" parameters.

Posted by Gustaf Neumann on

you need to checkout two packages from cvs head,
xowiki and xotcl-core. If you have a recent dotlrn installation, move away the version of xotcl-core that you have already before getting the head versions

For you other questions, please wait a couple of days for the new release. We discussed with roc to update xotcl-core in the oacs-5-3 branch and put xowiki there as well to have a place for a "stable release", while the eager development continues in cvs head. More and more sites rely on xowiki. Depending on when they grab a version of xowiki the get a current snapshot of xowiki. While i am trying to keep thinks working, with about 15 commits per week, people get sometimes features and new behaviors, they don't expect, which makes as well communication and support harder than necessary.