2017-12-29 3 views
-1

나는 Spring Mongodb 앱을 가지고 있는데 Azure에 가져 가고 싶었다. 그래서 저는 Cosmos db를 사용하기로 결정했습니다. 내 application.properties 파일을 다음과 같이 변경했습니다. spring.data.mongodb.uri = mongodb : // [사용자 이름] : [비밀번호] @ [dbname] .documents.azure.com : 10255 /? ssl = true spring. data.mongodb.database = DBNAMEMongodB는 있지만 Azure Cosmos와의 연결은 봄베이

나는 다음과 같은 예외가 점점 오전 : ActivityId : 25611363-0000-0000-0000-000000000000를, URI 요청 :/응용 프로그램/bbbd93b0-83ee-44a2-9015-ca7226457764/서비스/63c75889- e342-42b3-81b0-4851cae426d7/partitions/89ba02e8-b034-4b75-b8a0-57194d79f785/replicas/131587440168033880p, RequestStats :, SDK : Microsoft.Azure.Documents.Common/1.19.121.4 'on server dz5prdddc02-docdb-1.documents .azure.com : 10255. 전체 응답은 { "_t": "OKMongoResponse", "ok": 0, "code": 2, "errmsg": "메시지 : {\"오류 \ ": [\"포함 된 경로가 너무 많습니다 (106))를 지정합니다. 최대 100 개까지 허용됩니다. \ "\ n \ nActivityId : 25611363-0000-0000-0000-000000000000, 요청 URI :/apps/bbbd93b0-83ee-44a2-9015-ca7226457764/services/63c75889-e342-42b3- 81b0-4851cae426d7/파티션/89ba02e8-b034-4b75-b8a0-57194d79f785/replicas/131587440168033880p, RequestStats :, SDK : Microsoft.Azure.Documents.Common/1.19.121.4 ","$ err ":"메시지 : {\ "오류 \ ": [\"정책에 지정된 '포함 된 경로'가 너무 많습니다 (106). 최대 100 개까지 허용됩니다. \ "\ n \ nActivityId : 25611363-0000-0000-0000-000000000000, 요청 URI :/apps/bbbd93b0-83ee-44a2-9015-ca7226457764/services/63c75889-e342-42b3- 81b0-4851cae426d7/partitions/89ba02e8-b034-4b75-b8a0-57194d79f785/replicas/131587440168033880p, RequestStats :, SDK : Microsoft.Azure.Documents.Common/1.19.121.4 "} at org.springframework.data.mongodb.core. MongoExceptionTranslator.translateExceptionIfPossible (MongoExceptionTranslator.java:107) ~ [스프링 데이터 MongoDB를-1.10.9.RELEASE.jar : NA] org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.createIndex (MongoPersistentEntityIndexCreator.java에서 : 162) ~ [spring-data-mongodb-1.10.9.RELEASE.jar : na] at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForAndCreateIndexes (MongoPersistentEntityIndexCreator.java:133) ~ [spring-data- mongodb-1.10.9.RELEASE.jar : na] at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForIndexes (MongoPersistentEntityIndexCreator.java:125) ~ [spring-data-mongodb-1.10.9.RELEASE.jar : na] at org.springframework.data. mongoPersistentEntityIndexCreator. (MongoPersistentEntityIndexCreator.java:91) ~ [spring-data-mongodb-1.10.9.RELEASE.jar : na] at org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator. (MongoPersistentEntityIndexCreator.java:68) ~ [spring-data-mongodb-1.10.9.RELEASE.jar : na] at org.springframework.data.mongodb.core.MongoTemplate. (MongoTemplate.java:233) ~ [spring-data -mongodb-1.10.9.RELEASE.jar : na] at org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration.mongoTemplate (MongoDataAutoConfiguration.java:101) ~ [spring-boot-autoconfigure-1.5.9.RELEASE .jar : 1.5.9.RELEASE] at org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration $$ EnhancerBySpringCGLIB $$ 7c4704f8.CGLIB $ mongoTemplate $ 1() ~ [spring-boot-autoconfigure-1.5.9.RELEASE.jar : 1.5.9.RELEASE] at org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration $$ EnhancerBySpringCGLIB $$ 7c4704f8 $$ FastClassBySpringCGLIB $$ e0a4d3c3.invoke() ~ [spring-boot-autoconfigure-1.5.9.RELEASE.jar : 1.5.9] .RELEASE] at org.springframework.cglib.proxy.MethodProxy.invokeSuper (MethodProxy.java:228) ~ [spring-core-4.3.13.RELEASE.jar : 4.3.13.RELEASE] at org.springframework.context .annotation.ConfigurationClassEnhancer $ BeanMethodInterceptor.intercept (ConfigurationClassEnhancer.java:358) ~ [spring-context-4.3.13.RELEASE.jar : 4.3.13.RELEASE] at org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration $$ EnhancerBySpringCGLIB $$ 7c4 (원시 메소드) ~ [na : 1.8.0_151] atat sun.reflect.NativeMethodAccessorImpl.invoke0 ~ [na : 1.8.0_151]에서 [spring-boot-autoconfigure-1.5.9.RELEASE.jar : 1.5.9.RELEASE] sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na : 1.8.0_151] at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na : 1.8.0_151] at java.lang.reflect.Method.invoke (Method.java:498) ~ [na : 1.8.0_151] at org.springframework. beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:162) ~ [spring-beans-4.3.13.RELEASE.jar : 4.3.13.RELEASE] ... 47 개의 공통 프레임이 생략되었습니다. 원인 : com. mongodb.MongoCommandException : 명령이 오류 2와 함께 실패했습니다 : '메시지 : { "오류": [ "정책에 지정된'포함 된 경로가 너무 많습니다 .100] 최대 허용됩니다."]} 활동 ID : 25611363-0000- 0000-0000-000000000000, 요청 URI :/apps/bbbd93b0-83ee-44a2-9015-ca7226457764/services/63c75889-e342-42b3-81b0-4851cae426d7/partitions/89ba02e8-b034-4b75-b8a0-57194d79f785/replicas/131587440168033880p, RequestStats :, SDK : Microsoft.Azure.Documents.Common/1.19.121.4 ' 서버 dz5prdddc02-docdb-1.documents.azure.com:10255에 있습니다. 전체 응답은 { "_t": "OKMongoResponse", "ok": 0, "code": 2, "errmsg": "메시지 : {\"오류 \ ": [\"포함 된 경로가 너무 많습니다 (106))를 지정합니다. 최대 100 개까지 허용됩니다. \ "\ n \ nActivityId : 25611363-0000-0000-0000-000000000000, 요청 URI :/apps/bbbd93b0-83ee-44a2-9015-ca7226457764/services/63c75889-e342-42b3- 81b0-4851cae426d7/파티션/89ba02e8-b034-4b75-b8a0-57194d79f785/replicas/131587440168033880p, RequestStats :, SDK : Microsoft.Azure.Documents.Common/1.19.121.4 ","$ err ":"메시지 : {\ "오류 \ ": [\"정책에 지정된 '포함 된 경로'가 너무 많습니다 (106). 최대 100 개까지 허용됩니다. \ "\ n \ nActivityId : 25611363-0000-0000-0000-000000000000, 요청 URI :/apps/bbbd93b0-83ee-44a2-9015-ca7226457764/services/63c75889-e342-42b3- 81b0-4851cae426d7/partitions/89ba02e8-b034-4b75-b8a0-57194d79f785/replicas/131587440168033880p, RequestStats : SDK : Microsoft.Azure.Documents.Common/1.19.121.4 "} at com.mongodb.connection.ProtocolHelper.getCommandFailureException (ProtocolHelper.java:115) ~ [mongodb-driver-core-3.4.3.jar : na] at com.mongodb.connection.CommandProtocol.execute (CommandProtocol.java:114) ~ [mongodb-driver-core-3.4. 3.jar : na] at com.mongodb.connection.DefaultServer $ DefaultServerProtocolExecutor.execute (DefaultServer.java:168) ~ [mongodb-driver-core-3.4.3.jar : na] at com.mongodb.connection. DefaultServerConnection.executeProtocol (DefaultServerConnection.java:289) ~ [mongodb-driver-core-3.4.3.jar : na] com.mongodb.connection.DefaultServerConnection.command (DefaultServerConnection.java:176) ~ [mongodb-driver-core-3.4.3.jar : na] at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol (CommandOperationHelper.java : 216) ~ [mongodb-driver-core-3.4.3.jar : na] at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol (CommandOperationHelper.java:207) ~ [mongodb-driver-core-3.4.3.jar : com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol에서 NA] (CommandOperationHelper : com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol에서 NA] (CommandOperationHelper.java:146) ~ [MongoDB의 드라이버 코어-3.4.3.jar. java [: mongodb-driver-core-3.4.3.jar : na] core-3.4.3.jar : na] at com.mongodb.operation.CreateIndexesOperation $ 1.call (CreateIndexesOperation.java:144) ~ [mongodb-driver-core-3.4.3.jar : na] at com.mongodb . Operation.OperationHelper.withConnectionSource (OperationHelper.java:426) ~ [mongodb-driver-core-3.4.3.jar : na] at com.mongodb.operation.OperationHelper.withConnection (OperationHelper.java:417) ~ [mongodb -driver-core-3.4.3.jar : na] com.mongodb.operation.CreateIndexesOperation.execute (CreateIndexesOperation.java:144) ~ [mongodb-driver-core-3.4.3.jar : na] at com .mongodb.operation.CreateIndexesOperation.execute (CreateIndexesOperation.java:71) ~ [mongodb-driver-core-3.4.3.jar : na] at com.mongodb.Mongo.execute (Mongo.java:845) ~ [mongodb -driver-3.4.3.jar : na] at com.mongodb.Mongo $ 2.execute (Mongo.java:828) ~ [mongodb-dr iver-3.4.3.jar : na] com.mongodb.DBCollection.createIndex (DBCollection.java:1618) ~ [mongodb-driver-3.4.3.jar : na] at org.springframework.data.mongodb. core.index.MongoPersistentEntityIndexCreator.createIndex (MongoPersistentEntityIndexCreator.java:142) ~ [spring-data-mongodb-1.10.9.RELEASE.jar : na] ... 63 개의 공통 프레임이 생략되었습니다.

답변

2

이 오류 - "정책에 지정된 경로가 너무 많습니다 (106)". 최대 100 개까지 허용됩니다. "- 계정에 여러 개의 색인을 작성하고 한계 (100)를 초과 할 때 발생합니다. 그러나 MongoDB와 달리 CosmosDB가 문서의 모든 경로를 자동으로 색인하기 때문에 명시 적 색인이 필요하지 않으므로 이러한 색인의 대부분을 작성할 필요는 없습니다 (있는 경우). 고유 색인 작성과 관련이없는 경우 createIndex/ensureIndex 명령과 해당 Spring equivalent를 제외 시키십시오 (이 제약 조건이 필요한 필드를 알지 못하는 경우 createIndex가 필요함).

+0

감사합니다. 귀하의 솔루션이 도움이되었습니다. 또한 Azure Docdb에 대한 몇 가지 잘못된 참조를 만들었습니다. – polestar