New Problem w/ clean install of RS 2.2.1-5602 2014-12-17-20-23-49

I decide to completely reinstall ReportServer and now it’s not working. I downloaded the installer again from Sourceforge.

Has something changed? I noticed SourceForge indicates there was a modification within the last 12 hours but all of the files appear to be unchanged. This is frustrating.

Hi Tom,

I’ve changed some of the metadata on the sourceforge site which they apparently picked up as a “project change”. So no, we didn’t change
any of the files.

Your stacktrace looks like you have a corrupted H2 database. Could you try the following:

  1. stop the server
  2. go to reportserver/dbtmp and delete everything in the folder (you should see files like rsdemodb.mv.db
  3. start the server

Hope this helps

Arno

I took those steps and still the same error messages.

This makes absolutely no sense. I simply reinstalled the application. In another post, I’m going to point out a few things I noticed in the logs.

What is this all about? I thought the path was C:\Program Files\reportserver\tomcat\webapps\reportserver\dbtmp

Could the origin of this problem lie in recent Java update?

I’ve been searching the various configuration files looking for the dbtmp path. Where is this path set?

Hi Tom,

the internal db is configured in

/fileserver/etc/datasources/internaldb.cf

The default is the folder dbtmp within the reportserver directory. The WARNINGs indicate that tomcat does not have write permissions. Could you check?

In case ReportServer is not able to access the configured location it defaults to the default (tomcat) tmp directory. In your case this seems to be

C:\Program Files\reportserver\tomcat\bin\dbtmp

Could you also try to stop the server remove that dbtmp directory and restart the server.

Cheers
Arno

Hi Guys,

In my case, when only dbtmp was put into

/fileserver/etc/datasources/internaldb.cf

tomcat tried to place demo database under

...\tomcat\bin\dbtmp

(and not in

...\tomcat\webapps\dbtmp

), then could not write there, so the database landed in tmp folder and I got the same kind of WARNING info.

I’ve put the full path to the configuration file; now the database is where it should be.

Karolina

I completely removed the dbtmp directory but that didn’t solve my problem.

The strange thing about this problem. I followed the exact same procedure for the reinstall. I gave Tomcat no special permissions and it was working.

For troubleshooting purposes, I gave the all-inclusive group “Everyone” full control of the reportserver directory to see if it was a permissions problem. Also, the Local System Account has full control over the parent reportserver folder and all children.

I just installed it on my workstation and I was able to get it running. Could it be a difference between the version of Java?

Karolina:

How do I put the full path in the configuration file when I can’t even get reportserver to start? The internaldb.cf file is in the virtual filesystem and I can’t access that unless I login to reportserver? Right?

Hi Tom,

if all fails you could set the value directly in the database. But have you tried deleting

C:\Program Files\reportserver\tomcat\bin\dbtmp

Arno

Tom,
I’m sorry, I didn’t realise you were not able even to log in.

Karolina

Hi Tom,

the tmp dir is of course

C:\Program Files\reportserver\tomcat\temp

and not

C:\Program Files\reportserver\tomcat\bin\dbtmp

Sorry.. missed that somehow. So could you check in

C:\Program Files\reportserver\tomcat\temp

for any .db files and try deleting them?

Arno

MYSTERY SOLVED!!! And let this be a lesson for anyone else out there!!!

I wanted to explore the H2 database bundled with Report Server and I had downloaded and installed the H2 database in addition to Report Server. This confused Tomcat somehow. I uninstalled H2 and cleared my userprofile folder in Windows.

So this begs the question: if one wants to explore this internal report server database, what’s the best way to go about doing it? Arno? Thorsten? Is there a mechanism built into Report Server?

I’ll NEVER install H2 on the same instance of Report Server EVER again!

One other thing I noticed. This directory is being created: C:\Program%20Files\reportserver\tomcat\temp\rsidb

It’s storing the .db files here. I suspect this is an installation problem. Long path names with spaces require double quotation marks or it can cause this phenomenon.

Hi Tom,

great :D. Yes, regrettably tomcat is really not happy if it finds any extra libraries anywhere. We usually try to avoid running more than one application within tomcat when possible. Especially with ReportServer this can be tricky, since it brings quite a bunch of libraries.

Anyways, there is really no need to run H2 in tomcat if you want to have a look at the database. If you go to the lib directory within reportserver (/WEB-INF/lib) you can start an H2 server which brings its own webserver

$ java -cp h2-1.4.180.jar org.h2.tools.Server

You should see something like

TCP server running at tcp://192.168.2.102:9092 (only local connections)
PG server running at pg://192.168.2.102:5435 (only local connections)
Web Console server running at http://192.168.2.102:8082 (only local connections)

Now you can access the H2 console within the browser at localhost:8082. For example to access the demo database use
the following jdbc url

jdbc:h2:file:PATH_TO/rsidb/rsdemodb

Username and password are demo and demo. Note that you need to stop ReportServer for this, since otherwise ReportServer will block access to the
files.

A second option is to use ReportServer. You can simply set up a h2 datasource within ReportServer. The one pointing to the demo data is usually created
during the installation of the demo data. Similarly you can access the internaldb (the database name is rsdb). Besides using, for example, dynamic lists
you can also directly connect to the datasource.

Assuming the datasource is demodata is located in “/datasources/Sample Datasources”. Then you can open the terminal and run

cd /datasources/"Sample Datasources"
sql demodata

This provides you with a very simple SQL interface. But for many tasks it is good enough. You can now run SQL

SELECT * FROM T_AGG_CUSTOMER;

To, for example, get a list of tables run

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'TABLE'

Anyhow.. don’t expect much comfort from this. But it helps at occasion.

Cheers
Arno

Hi Arno,

Does that mean it is not recommended to have 2 instances of RS on one tomcat or even one physical server?

Karolina

Hi Karolina,

I would not recommend running two instances of ReportServer within the same tomcat. I am not saying that running
multiple instances of RS in a single tomcat cannot work, but in my experience you’ll sooner or later hit some very strange behavior
that is horrible to debug and which is solely related to tomcat not properly separating the running applications.

As for the same physical server, there is no restriction as far as I can see. That is, you can run multiple instances of tomcat on one physical server.

Arno

Thanks! You’ve saved me from troubles I definitely don’t need :smiley:

Karolina

Thanks, Arno! I’m loving the newest version of Report Server!

Well done to everyone at Datenwerke!

P.S. Did you notice my comment about the Program%20Files directory being created during installation? I hope my feedback and participation in the forum is useful. If I can get my head around GWT, I’ll even consider contributing some code to the project in the future. Thanks for everything.

Hi Tom,

yes, I’ve created a bug report and we’ll be looking into the “%20” problem.

I am glad to hear you like the new version of ReportServer. Be sure to spread the word :smiley: (e.g., a review on sourceforge or a blog post would be fantastic).

Cheers
Arno

Related to this, on Linux the default internaldb directory seems to be pointing somewhere non-writable.

Feb 01, 2015 2:58:22 PM net.datenwerke.rs.core.service.internaldb.InternalDbServiceImpl getLocation
WARNING: Cannot write to internal db file: /usr/share/tomcat/dbtmp
Feb 01, 2015 2:58:22 PM net.datenwerke.rs.core.service.internaldb.InternalDbServiceImpl getLocation
WARNING: Fallback location internaldb: /var/cache/tomcat/temp

I think it’s meant to be /usr/share/tomcat/webapps/reportserver/dbtmp. If I change the path in /fileserver/etc/datasources/internaldb.cf from “dbtmp” to “/usr/share/tomcat/webapps/reportserver/dbtmp”, these warnings go away. It seems the path is being interpreted relative to $CATALINA_HOME or maybe $CATALINA_BASE instead of the webapp directory.

Thanks,
Mike