Hello,
I am trying to change a document. I can query and get the document.
Then I open the view page and afterwards the modify page.
No problem till this state.
When I try to commit the document it suspends and does not give any response.
My modify page and the perl log file are in the attached zip file.
(I have a HModuleTag which extends module tag All module tags in the project direct to the HModuleTag not to module tag. In fact I think it does not effect this problem but it might be a useful knowledge. HModuleTag is also in the attached zip file.)
I would be glad if someone can help me.
Thanks
Server
X-Application Version: 4.1.1,
Tamino Version : 4.1.1
Platform : Win2k
WebContainer : Tomcat 4.1.1
JDK Version : 1.3.1
files.zip (14.4 KB)
Very strange. The log file shows an xquery for a document with id=“64685” – this query fails with “Transaction aborted because it has taken to long”. Can you see document 64685 if you look at that database using Tamino XPlorer? It this the newly created document? Can you re-produce this problem?
Michael
Software AG Germany, Darmstadt
Hello,
The document is not newly created.
It already exists in the database.
I can view it through Interactive Interface.
I can reproduce the problem.
It occurs anytime I try to modify and commit the document.
Server
Mhm. You can reproduce it, so I suspect you always get the “transaction has taken to long” error message. I can see only on explanation for this: the document is locked (although it should not be locked). You could verify this by changing the setLockwaitMode(TLockwait.YES) calls to setLockwaitMode(TLockwait.NO).
There are two places that need to be changed: store.TaminoStoreV4.java, line 786 and line 886. With this change, you should get an error message right away (instead of no activity and a time-out). If so, we know it’s some kind of locking problem that we have to understand …
Michael
Software AG Germany, Darmstadt
Hello,
I have changed setLockwaitMode(TLockwait.YES) to setLockwaitMode(TLockwait.NO) on line 786 and 886 but it didnt solve my problem.
I have another schema in the same Collection (A rather small schema) It doesnt cause any problem and does commit.
The Patient Schema is quite a large schema and has more than 90.000 documents and does not commit.
Thanks Server
Wow, 90000 documents is quite a lot. This looks like a better explanation for the transaction-time-out.
Does you application work if you point it to a collection with - say - 100 documents?
Michael
Hello,
I think I have the same problem like MehmetServer.
I am using:
X-Application Version: 4.1.1.4,
Tamino Version : 4.1.1
Platform : Win XP Prof
WebContainer : Tomcat 4.1.18
JDK Version : 1.3.1_06
What I did before:
My database schema ist attached in file dblp_main.tsd. When I generate an xapp for this schema, the attached structure_main.xml is generated. It is very large (500kb). I can search and view documents with the generated xapp, but when I want to create or modify documents I recieve an error (attached in error_Modify(main).html). The sniffed protocol is in file protocol_main_error.txt.
I assume that the schema is to large. Therefore I reduced the schema (file dblp_article.tsd). With this reduced schema I generated a second xapp. I inserted the structure_article.xml of the second xapp in the first one (main) and regenerated it.
My actual problem:
After that I could search, view and create documents. Furthermore I can modify documents I created with the xapp. But when I want to modify an existing doc I recieve the error attached in error_Modify-Commit(article).html after pressing the commit-button.
It seems to be the problem you discussed here.
The sniffer protocol is attached in protocol_article_error.txt.
Actually I have 20.000 docs in my database and it will become 100.000 or more.
I have tested a collection with only 13 docs I have attached in some_data.xml. But the error is the same.
I hope that we find a solution for this problem.
Best regards
Thorsten (NSDB)
error_xapp.zip (48.1 KB)
Hi,
the first problem - with the original schema - is an OutOfMemory problem. There are two thing you could try here: (1) grant more memory to Tomcat by setting -Xmx in CATALINIA_OPTS, or (2) split the generated pages to make them smaller (there’s a section in the documentation about splitting pages).
I’m not sure about the second problem – the error message generated by X-Application is not very helpful … Is it possible to post of sniffer protocol of the communication with Tamino (using the smaller collection with only 13 documents)? The protocol you sent logs the communication with Tomcat.
Michael
Software AG Germany, Darmstadt
Hello Michael,
the second problem is the more important one, because I want to solve the first one with it.
I would sniffer the communication with Tamino, but I do not know how to do it. The sniffer is started, but what do I have to change in the xapp?
I have changed the Tamino url in the xapplication.xml in my application folder, regnerated the xapp and reproduced the error, but the protocol file is empty.
Could you tell me what I have to do?
Best regards
Thorsten
Hi,
suppose your original tamino url of your application was http://localhost/tamino/mydb.
Now, the sniffer is started on the same machine. The sniffer connects
to port 3500 (I think, not 100% sure), and every request/response to this port
is written to a log file and re-directed to port 80. Thus, the tamino url in your
application has to be changed to http://localhost:3500/tamino/mydb.
Which tamino url did you use in your last try?
Michael
Hello,
I reduced the number of documents in my database to 500 and it succeeded to commit the document.
I have no problem with my existing Xapplication 3.1.3 project running with Tamino 3.1.2.1. It also has over 90.000 documents and commits the document within seconds.
Any idea about a solution?
Hello,
when I produced the uploaded protocol files, I started the sniffer at port 3500 and let it redirect to port 8080. Then I started my application with http://localhost:3500/dblp/search.jsp.
You told me that I sniffered the comunication with Tomcat.
Therefore I started the sniffer at port 3500 with redirection to port 80 to sniffer the communication with Tamino.
But where can I change the tamino url of my application? When I change it in the file xapplication.xml in my application folder, nothing is protocoled.
Best regards
Thorsten
Everything you write seems correct. In particular, changing the tamino url in your xapplication.xml is all you have to change. Strange. What happens if you specify a none-existing url in your xapplication.xml – does this break the application?
Michael
Hello Michael,
I am sorry, I do not know what I did wrong before.
Now I could successfully sniffer the Tamino communication. The protocol is in the attached file.
I hope that it helps to find a solution.
Best regards
Thorsten
protocol_tamino.zip (6.35 KB)
Hi,
I had a lock in the sniffer protocol, and I can only see xql and xquery requrests … no commits ?!
You said you can modify documents created with X-Application, the error shows up if you modify documents not created with X-Application. I’ve seen problems in this area if the “external” document is not valid according to the schema your application was generated for. However, I’d expect this problem to show up when modifying the document, not when committing it.
Is it possible to post two example documents - one you can commit, and one you cannot?
Michael
Software AG Germany, Darmstadt
Hello Michael,
I made some trials and have to correct me. Just some docs I did not create with xapplication can not be commited.
I uploaded the file error_xapp.zip a few postings before. In this file there are some example documents.
Out of this file I extracted one document that I can successfully commit (good_doc.xml) and one that I can not commit (bad_doc.xml). I attach the documents to this posting.
By the way, the error (Minor Environment Exception) is shown immediately after I press the commit-button. So I think that the commit command is not forwarded to Tamino and that this is the reason for the missing commit in the protocol.
Best regards
Thorsten
good_bad_doc.zip (859 Bytes)
I think I understand the problem now …
I produced the error message with the “bad” documents you set. The problem is a known limitation of X-Application: for each link or button on a jsp page, X-Application generates an id and stores this id in a table. If the user clicks on the link (or button), the browser submits the id to X-Application. X-Application looks up the id in the table to find out what to do next. If the id is not found, you the “parameter no longer meaningful” error message.
The problem is: the table has a fixed size of 200 items. After 200 id have been generated, old items are dumped (more precisely: replaced by new ids.)
The modify page für your “bad” document has more than 200 links, because you have a list of about 10 items, and each item has about 20 links to switch between alternatives.
As a solution, you can increase the size of X-Application’s table which is defined in src/com/softwareag/xtools/jsp/util/ArgumentsCodec.java,
line 48.
After changing the source file, please run
build quick
and copy
lib/debug/xapplication.jar
into the lib folder of your application.
This is an ugly limitation of X-Application,
sorry … (It’s listed in the limitations section of the documentation under “Many actions on large Pages”).
Michael
Software AG Germany, Darmstadt
Hello Mehmet,
there are two alternatives you could follow up:
a) Software AG provides a preview version of an upcoming Tamino Version which is enhanced in the area of XQuery and mass data.
If you would like to take part in the preview program, please contact your local Software AG dealer to get in contact with Software AG headquarter.
b) switch back to X-Query, the former query language of Tamino. This is still supported by Tamino 4.1 as well as X-Application 4.1. Note: this implies that advanced XQuery features cannot be used.
Regards, Harald
Hello Michael,
it works now !!!
I thank you very much!
Best regards
Thorsten