lod | 30 Jul 17:54 2014
Picon

index rebuild

In our use of jackrabbit we have had times occur where our indices have
gotten screwed up, and we have deleted and rebuilt them to fix our issues.
 As our content grows, this solution is not really viable as the rebuild
process consumes way too much time.  We are looking for solutions to:
a. What is the possible cause of the indices to become corrupt?
b. How can we detect which are corrupt and which are still valid, and how
do we fix just those that have become invalid.

On looking at the options for SearchIndex in repository.xml and
workspace.xml, I see the options for enableConsistencyCheck,
forceConsistencyCheck, and autoRepair.  If these parameters are all
enabled, will this allow us to detect when the indices get bad and repair
them?
If so, how often is this checking occurring?
Does it cause any performance degradation to have these parameters enabled?

--

-- 
Laura

Storm - FG40K, MBDCh-G, TFP, SM, JM,  AAD, AJ, AS, AG, AR, SJ, SS, SR, SG,
NA, NAJ, NAC, TN-N, NJC, CL3, CL4-H, CL4-F, CGC, TDI
Rogue - ONYX, MBDCH-S, TFP, AD, AG, SJ, SR, NAJ, CL3-F, CL2  (
http://www.powertripp.org/rogue.cfm)
Karma - FM, MBDX, TFE-I, APJ, APR, APK, AD, SR, SS, CL1
Longshot - noisy little puppy, dock-diving phenom, cuddler extraordinare

at the bridge:
Banshee - FM, MBDCh-S, TF-II, NAP, NJP, RN, CGC, TDI
Gambit - FMX, MBM, TFE, NJP, CGC, TDI
(Continue reading)

Tarek Jarraya | 29 Jul 17:53 2014
Picon

How to load CND file when the repository in standalone

Hi All,

We use Jackrabbit 2.8 and the repository is running in standalone. But we
didn't be able to load of a CND file via rmi protocol.

Our code:

Repository repository =

JcrUtils.*getRepository*("rmi://localhost:1099/jackrabbit.repository");

session = repository.login(*new* SimpleCredentials("admin", "admin"
.toCharArray()));

CndImporter.*registerNodeTypes*(*new* FileReader(
"C:/path/to/custom/node.cnd"), session);

With above code we are getting the following error message:

org.apache.jackrabbit.commons.cnd.ParseException:
javax.jcr.UnsupportedRepositoryOperationException: TODO: JCRRMI-26 (cnd
input stream, line 5)

In my understanding the operation is not supported for our context.

Is it possible to do it with another protocol?
Is it possible to do it without java code, only by configuration, and the
file will be loaded when the repository starts ?

Thanks in advance for your help,
(Continue reading)

Torgeir Veimo | 29 Jul 05:19 2014
Picon

oak; seeing Uniqueness constraint violated for key XX

I am getting a lot of these,

javax.jcr.nodetype.ConstraintViolationException: OakConstraint0030:
Uniqueness constraint violated for key
42cd9011-84a8-485f-b723-435439ddcc71

It seems to happen on session.save(), having just created a node of
type nt:unstructured, with a mixing node type which inherits
mix:referenceable.

I can't seem to see any other pattern. Is there anything in particular
that could cause this, with code that worked ok with jackrabbit 2.8?

This is with oak 1.0.3, but I've seen it on 1.0.1 and 1.0.2 as well.
--

-- 
-Tor

Venkat Subramanian | 29 Jul 01:58 2014

Jackrabbit with LDAP authorization

Hi,

I have a simple set of requirement to implement - and any info/samples with configuring JackRabbit to meet
these requirements would be of immense help.

- I have to support multiple set of content areas:  Hence I would be using multiple workspace
- Users (and hence login) and User groups will be driven by LDAP
- Each workspace to have a defined user group in LDAP i.e. workspace1_users, workspace2_users:  A member
of the group will be able to read everything in the corresponding workspace, but update one a single
specific file i.e. request.csv (create multiple version of the same file)
- There will be an admin ldap group i.e. jackrabbit_admin and these users will have all permissions on all
objects in all the workspaces

What I have done so far:
1.  Achieved LDAP login through config in repository.xml:  <LoginModule class="com.sun.security.auth.module.LdapLoginModule">
2.   Defined user/workspace configuration in respository.xml:          <SecurityManager
class="org.apache.jackrabbit.core.UserPerWorkspaceSecurityManager" workspaceName="security">

What I am struggling with:
Writing a Customer Workspace Level access control provider.  My custom provider gets invoked, it gets
compiled permissions, but after that I get an Unauthorized message

My configuration in workspace.xml looks like below
        <WorkspaceSecurity>
        <AccessControlProvider class="WorkspaceAccessControlProvider">
        <param name="allowedGroupId"value="222222 "/>
        </AccessControlProvider>
        </WorkspaceSecurity>

where
(Continue reading)

Marcel Reutegger | 28 Jul 20:02 2014
Picon

[ANNOUNCE] Apache Jackrabbit Oak 1.0.3 released

The Apache Jackrabbit community is pleased to announce the release of
Apache Jackrabbit Oak 1.0.3. The release is available for download at:

    http://jackrabbit.apache.org/downloads.html

See the full release notes below for details about this release.

Release Notes -- Apache Jackrabbit Oak -- Version 1.0.3

Introduction
------------

Jackrabbit Oak is a scalable, high-performance hierarchical content
repository designed for use as the foundation of modern world-class
web sites and other demanding content applications.

Apache Jackrabbit Oak 1.0.3 is a patch release that contains fixes and
improvements over Oak 1.0. Jackrabbit Oak 1.0.x releases are considered
stable and targeted for production use.

The Oak effort is a part of the Apache Jackrabbit project.
Apache Jackrabbit is a project of the Apache Software Foundation.

Changes in Oak 1.0.3
--------------------

Improvements

  [OAK-1966] - Add Hint for selecting more performant index in ...
  [OAK-1967] - Avoid collision marker update when already present
(Continue reading)

Torgeir Veimo | 28 Jul 13:27 2014
Picon

Re: getSize() == -1 with oak

Notwithstanding the suggestion for how to change our apps, is there
any hope that oak will provide a total count of hits for query results
sometime soon or in the future?

On 28 July 2014 20:47, Bertrand Delacretaz <bdelacretaz <at> apache.org> wrote:
> On Thu, Jul 24, 2014 at 5:04 PM, Torgeir Veimo <torgeir.veimo <at> gmail.com> wrote:
>> ...A common use case would be our job ad email subscription service,
>> where users can subscribe to daily or weekly delivery of new job ad
>> postings. The user expects to see the number of job ads matching his
>> subscription criteria....
>
> You could count the nodes in a loop with it.nextNode(), but only up to N.
>
> And if you reach N display "there are more than N-1 ads matching your criteria".
>
> This will work in all cases, avoid scaling issues and provide relevant
> information to the user.
>
> -Bertrand

--

-- 
-Tor

lod | 23 Jul 23:22 2014
Picon

multi-core processors

Looking through the jackrabbit documentation to attempt to confirm that
jackrabbit will use multi-cores if available on a machine.  I’ve seen some
configuration information for search that implies to me that it does, but
have found nothing specific.  Can someone confirm this for me?

If so, are there any configuration, settings that would help take advantage
of this?

--

-- 
Laura

Storm - FG40K, MBDCh-G, TFP, SM, JM,  AAD, AJ, AS, AG, AR, SJ, SS, SR, SG,
NA, NAJ, NAC, TN-N, NJC, CL3, CL4-H, CL4-F, CGC, TDI
Rogue - ONYX, MBDCH-S, TFP, AD, AG, SJ, SR, NAJ, CL3-F, CL2  (
http://www.powertripp.org/rogue.cfm)
Karma - FM, MBDX, TFE-I, APJ, APR, APK, AD, SR, SS, CL1
Longshot - noisy little puppy, dock-diving phenom, cuddler extraordinare

at the bridge:
Banshee - FM, MBDCh-S, TF-II, NAP, NJP, RN, CGC, TDI
Gambit - FMX, MBM, TFE, NJP, CGC, TDI
Tushar Pareek | 22 Jul 16:22 2014

Jackrabbit-2.8 .war not running on tomcat 8.0

Hi,

 

We are using jackrabbit 2.8 .war in our application. But when I try to deploy it on tomcat 8.0 server

Things runs fine initially but at the time of  creating repository , it says servlet error ie  “HTTP status 500- only one repository startup servlet allowed per web-app”.

 

Request you to help on this.

 

With Regards,

 

Tushar Pareek

 

t:  +91 80 42200595 |  m: 96209 00963
e-mail:  
tushar.p <at> cloudjetlabs.com

w: www.cloudjetlabs.com

CONFIDENTIALITY & DISCLAIMER NOTICE This message from tushar.p <at> cloudjetlabs.com and any attachments contain specific, confidential or proprietary information for exclusive use by the intended email recipient and others authorised to receive it. If you are not the intended recipient kindly notify the sender immediately. Any unauthorised use or dissemination of the contents of this message is prohibited. Any views and/or opinions expressed by the sender do not necessarily represent those ofCloudJet Labs. CloudJet Labs does not accept liability or legal responsibility for the contents of this message nor any errors in or omissions to the content of electronically generated communications, or any loss or damages howsoever caused, arising as a result of reliance on the contents or unauthorised use thereof. Although steps have been taken by CloudJet Labs to ensure the message is free from computer viruses, this form of communication is not secure and therefore CloudJet Labs cannot warrant this, nor that it has been intercepted and tampered with, CloudJet Labs therefore does not accept any liability for damages howsoever arising in this regard. The responsibility of detection and prevention of computer viruses lies solely with the recipient.

 

 

 

Marcel Reutegger | 22 Jul 10:17 2014
Picon

[ANNOUNCE] Apache Jackrabbit Oak 1.0.2 released

The Apache Jackrabbit community is pleased to announce the release of
Apache Jackrabbit Oak 1.0.2. The release is available for download at:

    http://jackrabbit.apache.org/downloads.html

See the full release notes below for details about this release.

Release Notes -- Apache Jackrabbit Oak -- Version 1.0.2

Introduction
------------

Jackrabbit Oak is a scalable, high-performance hierarchical content
repository designed for use as the foundation of modern world-class
web sites and other demanding content applications.

Apache Jackrabbit Oak 1.0.2 is a patch release that contains fixes and
improvements over Oak 1.0. Jackrabbit Oak 1.0.x releases are considered
stable and targeted for production use.

The Oak effort is a part of the Apache Jackrabbit project.
Apache Jackrabbit is a project of the Apache Software Foundation.

Changes in Oak 1.0.2
--------------------

Improvements

  [OAK-1645] Route find queries to Mongo secondary in MongoDocumentStore
  [OAK-1861] Limit memory usage of DocumentNodeStore.readChildren()
  [OAK-1934] Optimize MutableTree.orderBefore for the common case
  [OAK-1937] Add progress logs to MarkSweepGarbageCollector

Bug fixes

  [OAK-1462] - Aggregate Index isn't usable in an osgi environment
  [OAK-1703] - Improve warning logged on concurrent Session access
  [OAK-1807] - ConstraintViolationException seen with multiple Oak/Mongo
...
  [OAK-1890] - Concurrent System Login: slowdown for high concurrency
levels
  [OAK-1894] - PropertyIndex only considers the cost of a single indexed
...
  [OAK-1895] - ClassCastException can occur if the TraversalIndex is ...
  [OAK-1897] - Stale documents in MongoDocumentStore cache
  [OAK-1898] - Query: Incorrect cost calculation for traversal
  [OAK-1899] - Ordered index fails with old index content
  [OAK-1902] - NodeTypeIndex is not conversative enough about its cost
  [OAK-1903] - PropertyIndex applies 10x penalty to is not null queries ...
  [OAK-1916] - NodeStoreKernel doesn't handle array properties correctly
  [OAK-1917] - FileNotFoundException during TarMK GC
  [OAK-1921] - Backup: "Attempt to read external blob" error
  [OAK-1927] - TarMK compaction delays journal updates
  [OAK-1931] - MicroKernel.read() returns negative value
  [OAK-1932] - TarMK compaction can create mixed segments
  [OAK-1936] - TarMK compaction map check should switch comparison sides
  [OAK-1958] - Session.logout performance poor
  [OAK-1959] - AsyncIndexUpdate unable to cope with missing checkpoint ref

In addition to the above-mentioned changes, this release contains
all the changes included up to the Apache Jackrabbit Oak 1.0.0 release.

For more detailed information about all the changes in this and other
Oak releases, please see the Oak issue tracker at

  https://issues.apache.org/jira/browse/OAK

Release Contents
----------------

This release consists of a single source archive packaged as a zip file.
The archive can be unpacked with the jar tool from your JDK installation.
See the README.md file for instructions on how to build this release.

The source archive is accompanied by SHA1 and MD5 checksums and a PGP
signature that you can use to verify the authenticity of your download.
The public key used for the PGP signature can be found at
https://svn.apache.org/repos/asf/jackrabbit/dist/KEYS.

About Apache Jackrabbit Oak
---------------------------

Jackrabbit Oak is a scalable, high-performance hierarchical content
repository designed for use as the foundation of modern world-class
web sites and other demanding content applications.

The Oak effort is a part of the Apache Jackrabbit project.
Apache Jackrabbit is a project of the Apache Software Foundation.

For more information, visit http://jackrabbit.apache.org/oak

About The Apache Software Foundation
------------------------------------

Established in 1999, The Apache Software Foundation provides
organizational,
legal, and financial support for more than 140 freely-available,
collaboratively-developed Open Source projects. The pragmatic Apache
License
enables individual and commercial users to easily deploy Apache software;
the Foundation's intellectual property framework limits the legal exposure
of its 3,800+ contributors.

For more information, visit http://www.apache.org/

Hsu, David | 22 Jul 01:39 2014

Large index merge loop

Hi, our app is based on Drools Guvnor and our repository is currently about 20GB. Every once in a while, we
will build up enough indexes that it has a to do a very big merge (around 4GB). However, at a certain point the
TransientRepository shuts down for whatever reason (I'm new to Jackrabbit and haven't been able to track
down why...I am still logged into the app when this occurs) and tries to stop the IndexMerger. When the
IndexMerger finally does finish, it says merging has been canceled and that it is deleting the index, but
looking at the index directory I can see that the folder is still present. Then the TransientRepository
starts up again it retries and starts the whole cycle over again, resulting in a bunch of leftover 4GB index
folders and eventually a full hard drive.

We initially encountered this problem on Jackrabbit 1.4.5 (came with Guvnor when this project was
started) and have recently upgraded to 2.8.0 thinking it would help, but we were still able to reproduce
the issue. Is this known and/or expected behavior with the TransientRepository? Is there anything in
Jackrabbit itself that causes all Sessions to spontaneously close and shut down the repository? If so how
do we work around this?

Below is an excerpt from our most recent run on 2.8.0. I forgot to enable debug statements on
TransientRepository, but if needed I can provide the 1.4.5 logs that have them.

2014-07-16 16:00:38,890 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] requesting
merge for [_10w6:99896, _10ze:99781, _115x:99915, _11qc:99849, _12kx:99861, _13mh:43521,
_14ha:34129, _15c5:34256, _1672:34254, _16ur:29993]
2014-07-16 16:00:38,891 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] # of busy
merge workers: 1
2014-07-16 16:00:54,095 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] dispose IndexMerger
2014-07-16 16:00:54,097 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] quit flag set
2014-07-16 16:06:25,673 INFO  [org.apache.jackrabbit.core.query.lucene.IndexMerger] merged
675455 documents in 344310 ms into _16uy.
2014-07-16 16:06:25,674 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] index
merging canceled
2014-07-16 16:06:25,675 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] deleting
index _16uy
2014-07-16 16:06:25,675 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger]
IndexMerger.Worker thread stopped
2014-07-16 16:06:25,676 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] Worker finished
2014-07-16 16:06:26,539 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] dispose IndexMerger
2014-07-16 16:06:26,540 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] quit flag set

2014-07-16 16:06:34,731 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] requesting
merge for [_10w6:99896, _10ze:99781, _115x:99915, _11qc:99849, _12kx:99861, _13mh:43521,
_14ha:34129, _15c5:34256, _1672:34254, _16ur:29993]
2014-07-16 16:06:34,732 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] # of busy
merge workers: 1
2014-07-16 16:06:54,192 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] dispose IndexMerger
2014-07-16 16:06:54,193 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] quit flag set
2014-07-16 16:12:28,267 INFO  [org.apache.jackrabbit.core.query.lucene.IndexMerger] merged
675455 documents in 352127 ms into _16uz.
2014-07-16 16:12:28,270 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] index
merging canceled
2014-07-16 16:12:28,270 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] deleting
index _16uz
2014-07-16 16:12:28,271 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] Worker finished
2014-07-16 16:12:28,271 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger]
IndexMerger.Worker thread stopped
2014-07-16 16:12:28,607 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] dispose IndexMerger
2014-07-16 16:12:28,608 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] quit flag set

2014-07-16 16:12:34,629 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] requesting
merge for [_10w6:99896, _10ze:99781, _115x:99915, _11qc:99849, _12kx:99861, _13mh:43521,
_14ha:34129, _15c5:34256, _1672:34254, _16ur:29993]
2014-07-16 16:12:34,631 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] # of busy
merge workers: 1
2014-07-16 16:12:54,220 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] dispose IndexMerger
2014-07-16 16:12:54,221 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] quit flag set
2014-07-16 16:18:23,807 INFO  [org.apache.jackrabbit.core.query.lucene.IndexMerger] merged
675455 documents in 348109 ms into _16v0.
2014-07-16 16:18:23,810 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] index
merging canceled
2014-07-16 16:18:23,810 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] deleting
index _16v0
2014-07-16 16:18:23,810 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger]
IndexMerger.Worker thread stopped
2014-07-16 16:18:23,812 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] Worker finished
2014-07-16 16:18:24,165 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] dispose IndexMerger
2014-07-16 16:18:24,166 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] quit flag set

2014-07-16 16:18:31,090 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] requesting
merge for [_10w6:99896, _10ze:99781, _115x:99915, _11qc:99849, _12kx:99861, _13mh:43521,
_14ha:34129, _15c5:34256, _1672:34254, _16ur:29993]
2014-07-16 16:18:31,091 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] # of busy
merge workers: 1
2014-07-16 16:18:54,236 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] dispose IndexMerger
2014-07-16 16:18:54,238 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] quit flag set
2014-07-16 16:22:07,872 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] deleting
index _16v1
2014-07-16 16:22:08,545 ERROR [org.apache.jackrabbit.core.query.lucene.IndexMerger] Error while
merging indexes:
java.io.IOException: There is not enough space on the disk
               at java.io.RandomAccessFile.setLength(Native Method)
               at org.apache.lucene.store.FSDirectory$FSIndexOutput.setLength(FSDirectory.java:489)
               at org.apache.lucene.index.CompoundFileWriter.close(CompoundFileWriter.java:195)
               at org.apache.lucene.index.SegmentMerger.createCompoundFile(SegmentMerger.java:137)
               at org.apache.lucene.index.IndexWriter.addIndexes(IndexWriter.java:3219)
               at org.apache.jackrabbit.core.query.lucene.PersistentIndex.addIndexes(PersistentIndex.java:114)
               at org.apache.jackrabbit.core.query.lucene.IndexMerger$Worker.run(IndexMerger.java:526)
               at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
               at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
               at java.util.concurrent.FutureTask.run(Unknown Source)
               at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
               at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
               at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
               at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
               at java.lang.Thread.run(Unknown Source)
2014-07-16 16:22:08,551 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] Worker finished
2014-07-16 16:22:08,552 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger]
IndexMerger.Worker thread stopped
2014-07-16 16:22:08,890 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] dispose IndexMerger
2014-07-16 16:22:08,891 DEBUG [org.apache.jackrabbit.core.query.lucene.IndexMerger] quit flag set

Any help would be greatly appreciated.

Thanks,

David Hsu
Torgeir Veimo | 16 Jul 19:32 2014
Picon

getSize() == -1 with oak

What's the correct approach to getting a total count from a query
result with apache oak?

Using 'order by  <at> jcr:score' doesn't seem to work as it does with Jackrabbit.

--

-- 
-Tor


Gmane