id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	due_date
95	r系统调用接口报MongoException: norepl	sunxiang	sunxiang	"
== 报错 ==
wap_product_price改版，报价页使用r系统调用接口。在测试中发现会报com.mongodb.MongoException: norepl，具体如下：
[[Image(20120312180929.jpg)]]
[[BR]]

== 原因 ==
在官网上看到，norepl原来是no replica（没有复制品）的意思，从测试得知只配了一台机。查了一下mongo连接相关的配置，在resin-web.xml中mongo配置如下：，
{{{
<env-entry>
<description>MongoConfig for 4</description>
<env-entry-name>mongoConfig4RClient</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>mongodb://192.168.75.100:5566/price_front_cache?slaveOk=true;maxPoolSize=256;w=2;safe=true</env-entry-value>
</env-entry>
}}}
其中，w=2;safe=true表示使用安全模式连接到复制组，等待复制操作至少在2台机器完成，但又没有配置复制集，因此报错。
== 解决 ==
去掉配置中的w=2;safe=true即可。[[BR]]

附上连接相关的配置：[[BR]]
'''标准的连接字符串格式'''
{{{
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
}}}
 •mongodb:// 必选的前缀，用来标示这是一个标准连接格式的字符串
 •username:password@ 可选的。如果有，驱动在连接到数据库服务器后会尝试登录到一个数据库。
 •host1 URL的必选部分。它标示了要连接的服务器地址。
 •:portX 是可选的。如果没有提供默认连接到:27017.
 •/database 要登录的数据库的名称，只有username:password@语法使用后它才有用。如果没有提供，默认使用“admin”。
 •？options 是连接的可选项。注意如果database没有提供，在最后一个主机和?符号中间依然需要一个斜杠""/""。可选项是名称=值的配对，他们使用""&""或者"";""隔开。
 
很多主机可能需要指定（连接到复制对/组）。
 
这些可选项是：
 
复制组：
 •replicaSet=name
  •驱动会检查连接到的复制组和这个名称是否匹配。意味着如果给出的主机是种子列表，驱动会尝试找到复制组内所有成员。

单台服务器：
 •slaveOk=true|false
 
其他配置：
 •safe=true|false
  •true:驱动在执行更新操作后会发送一个getLastError命令确保更新成功（同时查看一下w和wtimeoutMS）。
  •false:驱动在每次更新操作后不会发送getLastError命令。
 
 •w=n
  •驱动在getLastError命令中增加{w:n}。在safe=true的情况下.
 
 •wtimeoutMS=ms
  •驱动在getLastError命令中增加{wtimeout:ms}。在safe=true的情况下.
 
 •fsync=true|false
  •true:驱动在getLastError命令中增加{fsync:true}。在safe=true的情况下.
  •false:驱动不在getLastError命令中增加同步参数。
 
 •journal=true|false
  •同步到日志文件。在safe=true的情况下.
 
 •connectTimeoutMS=ms
  •一个连接在超时之前可以保持打开的时间。
 
 •socketTimeoutMS=ms
  •套接字上面的发送和接收操作的超时时间。

"	Bug	closed	major		报价库	产品库3.0	fixed	Connections MongoDB		21/03/2012
