PDA

View Full Version : How do I reset MetaData?



Sreh
10-15-2009, 01:14 PM
I have managed to really screw up the metadata. I just want to reset back and restart from there.

Quick FYI - I have looked at Pentaho in the past and the learning curve was intimidating (we use Crystal and Crystal Reports ServerXI). The books Pentaho Solutions by Bouman and van Dongen and the book Pentaho Reporting 3.5 for Java Developers by Will Gorman have been a HUGE resource for me with up to date answers that have helped me alot in speeding up the steep learning curve.

Here is my problem - I am using the PCI for 3.5RC2.
I installed with Hypersonic, played around with the security settings and with Metadata editor. I also added my own folder, one new metadata xmi file for that folder.

- Next, I decided to move from HSQLDB's for Quartz and hibernate to Oracle 10g. That went smoothly and everything transferred and works well (I can run the sample reports fine and even my custom report, just not ad-hoc designer). I commented out hybernate/quartz Hsqldb's and kept the sample data HSQL DB running and I can run the sample reports with Oracle as the hybernate and Quartz DB.

- I noticed all the security changes I made in hsql were NOT in my oracle version. This made sense becuase I think it just loaded the default.

PROBLEM:
- Hitting Tools -> Refresh -> Reporting MetaData - I get this error from Pentaho.log (full error log message at end of post)

2009-10-15 09:42:59,635 ERROR [org.pentaho.platform.engine.services.metadata.MetadataPublisher] MetadataPublisher.ERROR_0001 - Problems occured loading some metadata.xmi files.
java.lang.NullPointerException
at java.io.FileOutputStream.write(FileOutputStream.java:247)



- Problem - when I try to run Adhoc Query.
"There are no Data Source(s) defined in the metadata, or you do not have permission to access any of the Data Source(s). Please Create one or more Data Source(s) using Metadata editor and then publish them to the Pentaho server. Or use Metadata editor to give appropriate user permission to access the data source.


- Problem in MetaData editor
I load the XMI file and try to publish to the server (I have successfully done this in the past and the publishing password is setup). It takes my login information says a file exists and would I like to overwrite and I say yes.

I deleted my custom directory with its metadata.xmi thinking that could be the problem. still did not work.

I have tried going into oracle and manually updating the binary data field with the XMI file successfully with a "vanilla" metadata.xmi (from clean bi zip file). I still get the error message.

Can anyone help me get to the bottom of this? I am not worried about losing data, I really haven't created much yet. It looks like when I run my backup pre-oracle it gets the same error now as well.

Thanks,
Steve




Full Error log when I refresh Metadata from User console on server. (from admin console it say ran successfully but it doesn't appear to work, meaning adhoc still has problems).

[org.pentaho.platform.engine.services.metadata.MetadataPublisher] MetadataPublisher.ERROR_0001 - Problems occured loading some metadata.xmi files.
java.lang.NullPointerException
at java.io.FileOutputStream.write(FileOutputStream.java:247)
at org.pentaho.platform.repository.solution.dbbased.DbBasedSolutionRepository.publishIcon(DbBasedSolutionRepository.java:713)
at org.pentaho.platform.repository.solution.dbbased.DbBasedSolutionRepository.addIndexToRepository(DbBasedSolutionRepository.java:501)
at org.pentaho.platform.repository.solution.dbbased.DbBasedSolutionRepository.processDir(DbBasedSolutionRepository.java:302)
at org.pentaho.platform.repository.solution.dbbased.DbBasedSolutionRepository.loadSolutionPath(DbBasedSolutionRepository.java:213)
at org.pentaho.platform.repository.solution.dbbased.DbBasedSolutionRepository.getCachedSolutionDocument(DbBasedSolutionRepository.java:259)
at org.pentaho.platform.repository.solution.dbbased.DbBasedSolutionRepository.getSolutions(DbBasedSolutionRepository.java:728)
at org.pentaho.platform.repository.solution.SolutionRepositoryBase.getSolutions(SolutionRepositoryBase.java:545)
at org.pentaho.platform.plugin.services.metadata.MetadataDomainRepository.reloadLegacyDomains(MetadataDomainRepository.java:143)
at org.pentaho.platform.plugin.services.metadata.MetadataDomainRepository.reloadDomains(MetadataDomainRepository.java:104)
at org.pentaho.platform.engine.services.metadata.MetadataPublisher.publish(MetadataPublisher.java:73)
at org.pentaho.platform.engine.core.system.BasePublisher.publish(BasePublisher.java:37)
at org.pentaho.platform.engine.core.system.PentahoSystem.publish(PentahoSystem.java:811)
at org.pentaho.mantle.server.MantleServlet.refreshMetadata(MantleServlet.java:201)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:166)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.pentaho.platform.web.http.security.SecurityStartupFilter.doFilter(SecurityStartupFilter.java:85)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.pentaho.platform.web.http.security.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:169)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.pentaho.platform.web.http.security.HttpSessionReuseDetectionFilter.doFilter(HttpSessionReuseDetectionFilter.java:134)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.pentaho.platform.web.http.filters.SystemStatusFilter.doFilter(SystemStatusFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.pentaho.platform.web.http.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:113)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Thread.java:619)

Sreh
10-15-2009, 06:06 PM
I am doing a complete re-install from scratch and migrate to Oracle before changing anything in the hibernate db.

I still would be interested in how I would fix or reset the metadata. Seems like it should be possible.

I will update here if I run into the same problems on my re-install.

Steve

Sreh
10-15-2009, 08:19 PM
With a fresh install, everything seems to be working now.

I guess the best course to keep the metadata clean will be keep very good backups any time I have any major changes.

Lesson learned.

When you are creating a new db repository-
Do not change anything! Otherwise you will likely have to migrate the data from HSQL
After your new Quartz and Hibernate DB's are working, then make changes.

wgorman
10-15-2009, 11:11 PM
The error is most likely due to the transition from HSQLDB to Oracle. The null pointer exception is related to loading an image icon that is related to a solution folder or xaction, I haven't seen that before. I recommend refreshing the solution repository in the User Console. If you are still experiencing the null pointer, let me know.

Will

wgorman
10-15-2009, 11:12 PM
Glad to hear you got around the issue!

Sreh
10-19-2009, 05:28 PM
I ran the metadata editor, and it corrupted my metadata and again.... I just started it and noticed a few wierd things. The XMI file dates appear to be unchanged.

Yet I get the same error about loading the xmi files.

I loaded the metadata editor
- I have the java window open so I could see some of the details.
- It said it was unable load PriceList_View Model which is the old model I created.
- The domain PriceList_View still existed.
-I created a new one and imported an old xmi, it said "already exists in repository, do you want to overwrite?"
- I said yes, I assumed that it was talking about the meta-data repository not hibernate or anything on my server. I thought you had to publish or copy the files over to the bi-server-ce\ folder to make any changes.

I did not publish it. I then wanted to make sure my server was working correctly before i published anything. When I went to refresh metadata I got the same error.

I do not think the XMI files are the issue. Any idea what to do? I refreshed everything else from the user console.

Sreh
10-20-2009, 01:43 PM
Ok,

Here is what I did:

1) Delete all folders from the user console (including sample data) used admin console to delete sample data hsql db
2) From user console hit refresh metadata (it says 0 xmi files updated becuase now there are zero)
3) I ran metadata editor and published to a new folder successfully.
4) Adhoc Report Designer now successfully runs.

I am still not sure exactly how I messed it up but it now looks like I am on the right track. I was able to reset the metadata without a fresh install.

I am going to try to revive the sample data and see if I get any errors.

Update-
SampleData restored-
Tasks
1)Using user console created a new folder called "steel-wheels"
2) Copy the folder steel-wheels from zip file to my bi-server, I did not overwrite the xml file there.
3) Refresh repository. Metadata from sample data was automatically picked up.
4) Just to beat the dead horse, I ran refresh metadata and it successfully loaded the xmi files.

Everything works now. I also feel more confident is being able restore my metadata if I manage to mess it up again.

Sreh
10-21-2009, 02:24 PM
I am sure there is a better way to do it but I ran into the exact same error when I tried to install the stable release for 3.5

I have fixed it by the method in the previous post.

I delete all the folders from user console.
Refresh repository
refresh metadata
create new folder in user console
publish metadata
copy folder in windows explorer (I did not overwrite the index.xml file, I wonder if the security is somehow fixed when I recreate the folder and this xml file)
Refresh Repository and MetaData

The it seems to work well.