With AEM 6 the persistence layer which is used to store content, configurations, and program code, is called a MicroKernel (MK). AEM 6 introduced a new MicroKernel and here's what you should know.
AEM 6 introduced a new MicroKernel (MongoMK) which allows the use of MongoDB as a repository. Further MicroKernels may be added along the line but are not fully confirmed yet. In this article we will be looking at a very basic local MongoDB setup.
Requirements:
1. Prepare a folder structure (sample) as below
./aem_600_mongodb |
2. Download MongoDB for Mac OSX or other OS (configs in this guide also work with Linux)
http://www.mongodb.org/downloads
3. extract the packages content directly into the mongodb directory as created under point 1. -> ( ./aem_600_mongodb/mongodb/bin should then exist )
4. in your mongodb directory, parallel to the data & logs & bin directory create the mongod.cfg file
mongod.cfg
bind_ip = 127.0.0.1 |
5. now place your license.properties & AEM 6 quickstart jar in your base directory (in this case ./aem_600_mongodb)
6. extract the AEM 6 jar file (java -jar aem-6.0.0.20140515.jar -unpack)
7. edit the start script under ./aem_600_mongodb/crx-quickstart/bin and add the following properties
CQ_RUNMODE='author,crx3mongo' -> crx3mongo is added here |
8. once the above steps are completed go to your bin directory in your mongodb directory and start mongo db & tail the log
./mongod --config ../mongod.cfg && tail -f ../logs/mongod.log |
9. now start your AEM from the ../crx-quickstart/bin directory and tail the log
./start && tail -f ../error.log |
10. once your AEM is started and everything has been created you got an AEM running on MongoDB
11. for administration purposes have a look at using the robomongo app: http://robomongo.org/
The Adobe documentation and MongoDB documentation is your best bet for further details.
bind_ip = mongotest
port = 27017
quiet = false
dbpath = ../data
logpath = ../logs/mongod.log
logappend = true
journal = true
directoryperdb = true
rest = true
httpinterface = true
172.32.10.10 mongotest
./mongod --replSet "rs0" --config ../mongod.cfg
./mongo 192.168.36.72
rs.initiate()
rs.conf()
{
"_id" : "rs0",
"version" : 1,
"members" : [
{
"_id" : 1,
"host" : "mongotest:27017"
}
]
}
rs.add(mongotest2)
rs.status()
{
"set" : "rs0",
"date" : ISODate("2014-07-21T16:45:15Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "mongotest:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 5559,
"optime" : Timestamp(1405961115, 1),
"optimeDate" : ISODate("2014-07-21T16:45:15Z"),
"electionTime" : Timestamp(1405955596, 2),
"electionDate" : ISODate("2014-07-21T15:13:16Z"),
"self" : true
},
{
"_id" : 3,
"name" : "mongotest2:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 3445,
"optime" : Timestamp(1405961115, 1),
"optimeDate" : ISODate("2014-07-21T16:45:15Z"),
"lastHeartbeat" : ISODate("2014-07-21T16:45:15Z"),
"lastHeartbeatRecv" : ISODate("2014-07-21T16:45:15Z"),
"pingMs" : 4,
"syncingTo" : "mongotest:27017"
},
],
"ok" : 1
}