Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Alfresco solr/search在安装记录管理后停止工作_Search_Solr_Alfresco_Record - Fatal编程技术网

Alfresco solr/search在安装记录管理后停止工作

Alfresco solr/search在安装记录管理后停止工作,search,solr,alfresco,record,Search,Solr,Alfresco,Record,我正在使用alfresco 5.2.3 enterprise和solr6搜索服务。 当我在alfresco平台jar和alfresco共享jar中部署应用程序自定义代码时,一切正常。 现在,当我安装alfresco记录管理amp文件时,搜索停止工作。我甚至无法搜索单个文档或文件夹。 RM amp版本:alfresco-RM-enterprise-repo-2.7.0.amp和alfresco-RM-enterprise-share-2.7.0.amp 有三个不同的实例:repo(alfresco

我正在使用alfresco 5.2.3 enterprise和solr6搜索服务。 当我在alfresco平台jar和alfresco共享jar中部署应用程序自定义代码时,一切正常。 现在,当我安装alfresco记录管理amp文件时,搜索停止工作。我甚至无法搜索单个文档或文件夹。 RM amp版本:alfresco-RM-enterprise-repo-2.7.0.amp和alfresco-RM-enterprise-share-2.7.0.amp

有三个不同的实例:repo(alfresco.war所在)、share(share.war和ADF所在)和index server(维护索引所在)

我在repo上安装了alfresco-rm-enterprise-repo-2.7.0.amp,在share上安装了alfresco-rm-enterprise-share-2.7.0.amp。然后重新启动服务器。RM安装成功,没有任何错误。但在此之后,搜索根本不起作用

是否可能在RM安装后,某些索引已损坏,我们需要重新编制索引?这能解决这个问题吗

注意:根据alfresco文档链接,alfresco和RM的版本已经在支持的堆栈中:


任何帮助都将不胜感激。

最后,问题解决了。 密钥库、信任库证书文件是罪魁祸首。 由于ACS和索引服务器之间的通信未发生,导致日志中出现GetModelsDiff 403错误,因此需要生成新的密钥库、信任库文件。 此外,我们确保在ACS和索引服务器文件中设置了以下设置:


ACS alfresco-global.properties:
Solr配置: solr.in.sh文件: alfresco core>solrcore.properties和archive core>solrcore.properties 无需触摸此位置下的文件: /opt/alfresco搜索服务/solrhome/templates/rerank/conf

最后是最重要的部分: 最新/更新的证书文件位于:

/opt/alfresco-search-services/solrhome/keystore
/opt/alfresco-search-services/solrhome/alfresco/conf
以及放置在以下目录下的相同证书文件:

/opt/alfresco-search-services/solrhome/keystore
/opt/alfresco-search-services/solrhome/alfresco/conf

在ACS服务器上:

/opt/alfresco-content-services/alf_data/keystore
此外,如果问题仍未得到解决,您可以尝试以下操作:

  • 在alf global中设置solr.secureComms=none,在archive core和alfresco core中设置alfresco.secureComms=none,然后重新启动这两个实体,查看正常HTTP连接是否在没有SSL或HTTPS的情况下工作
  • 使用infra/netwk团队验证是否安装了正确的证书
  • 尝试直接将alfresco和solr的IP地址指向对方,而不是主机名,因为它可能通过LB
  • 从alfresco repo服务器尝试Telnet solr主机,反之亦然
  • 将-Djavax.net.debug=all放在alfresco>tomcat/scripts/ctl.sh下,看看是否有任何有用的信息
  • 不要只查看alfresco.log、solr.log,如果可以找到404或200个状态响应,请参阅访问日志。或在solr计算机上根据本地主机访问日志中记录的URL进行卷曲
  • 使用root用户启动/停止solr–理想情况下,应该是solr的另一个专用用户
  • 理想情况下,证书应该从alfresco(alf_数据/密钥库)复制到solr服务器,而不是从solr复制到alfresco服务器。但如果不起作用,你可以尝试另一种方法
  • alf global中的alfresco.host、share.host、alfresco.port、share.port应与solrhome/alfresco/conf/solrcore.properties+solrhome/archive/conf/solrcore.properties中的属性匹配
  • 尝试将调试器置于alfresco repo端和solr端的调试语句之上,以捕获任何未知或隐藏的异常/错误
  • 您还可以从浏览器中查看solr管理控制台页面,并从中查看日志

我在使用Alfresco insight engine 2.0.0的Alfresco 6.2.2上遇到了类似的问题。更改配置后,我一个接一个地遇到了以下多个错误:-

如果ACS、Solr之间或ACS、Solr和AWS之间的证书不匹配,或者生成的证书不正确,或者证书仅与特定java版本兼容,或者证书未正确添加到truststore,则您可能会得到:

javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException  , 


unable to find valid certification path to requested target , 

Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
我检查了配置(证书)是否在AWS端正确导入。AWS侧未施加任何限制。 但是,最终我能够通过以下组合解决问题: 露天侧

Server.xml

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
    SSLEnabled="true" maxThreads="150" scheme="https"
    keystoreFile="/app/tomcat/keystores/ssl.keystore"
    keystorePass="pwd" keystoreType="JCEKS"
    secure="true" connectionTimeout="240000"
    truststoreFile="/app/tomcat/keystores/ssl.truststore"
    truststorePass="pwd" truststoreType="JCEKS"
    clientAuth="false" sslProtocol="TLS" />
单侧

solr.in.sh

    SOLR_SOLR_HOST=domainname
    SOLR_ALFRESCO_HOST=domainname
    SOLR_SSL_CUSTOM="-Dsolr.ssl.checkPeerName=false -Dsolr.allow.unsafe.resourceloading=true"
SOLR_OPTS="$SOLR_SSL_CUSTOM"
    SOLR_PORT=8984
    SOLR_HOST=domainname
    SOLR_SSL_KEY_STORE=/app/alfresco-insight-engine/solrhome/keystore/ssl.repo.client.keystore
    SOLR_SSL_KEY_STORE_PASSWORD=pwd
    SOLR_SSL_KEY_STORE_TYPE=JCEKS
    SOLR_SSL_TRUST_STORE=/app/alfresco-insight-engine/solrhome/keystore/ssl.repo.client.truststore
    SOLR_SSL_TRUST_STORE_PASSWORD=pwd
    SOLR_SSL_TRUST_STORE_TYPE=JCEKS
    SOLR_SSL_NEED_CLIENT_AUTH=false
    SOLR_SSL_WANT_CLIENT_AUTH=true
solrcore.properties(两个核心)

solrcore.properties(在rerank/conf下)

alfresco密钥库文件(alfresco使用/指向)位于/app/tomcat/keystores下。 和solr密钥库文件(solr使用/指向)位于/app/alfresco insight engine/solrhome/keystore下

注意:我们还将solr密钥库文件复制到以下位置:/app/alfresco insight engine/solrhome/alfresco/conf、/app/alfresco insight engine/solrhome/archive/conf、/app/alfresco insight engine/solrhome/templates/rerank/conf

注意:如果只是一个未添加到truststore cacerts的证书,则可以使用以下链接将该证书添加到cacerts:

如果上述操作不起作用,则可以检查的其他点:

  • 检查java版本是否是受支持的版本(在受支持的堆栈中),以及证书是否正确添加到信任库中
  • 从alfresco的管理摘要页面检查java版本,并验证是否将证书添加到正确的java中
  • 检查solr主机、端口和ssl端口是否正确拾取。验证此位置-http://domainname/alfresco/s/enterprise/admin/admin-searchservice ,因为可能从此处拾取的端口可能和alfresco-global.properties文件中的端口不匹配。如果alf global和admin searchservice URL之间的属性不匹配,当alfresco尝试连接到solr时,您可能会在alfresco日志中收到“连接被拒绝”错误
  • 如果JKS类型的证书已成为obsol
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
        SSLEnabled="true" maxThreads="150" scheme="https"
        keystoreFile="/app/tomcat/keystores/ssl.keystore"
        keystorePass="pwd" keystoreType="JCEKS"
        secure="true" connectionTimeout="240000"
        truststoreFile="/app/tomcat/keystores/ssl.truststore"
        truststorePass="pwd" truststoreType="JCEKS"
        clientAuth="false" sslProtocol="TLS" />
    
    index.subsystem.name=solr6
    solr.secureComms=https
    solr.port=8984
    solr.port.ssl=8984
    solr.host=domainname
    
    alfresco.context=alfresco
    alfresco.host=host
    alfresco.port=8443
    alfresco.protocol=https
    #
    share.context=share
    share.host=host
    share.port=8443
    share.protocol=https
    
    #ssl encryption
    encryption.ssl.keystore.location=/app/tomcat/keystores/ssl.keystore
    encryption.ssl.keystore.type=JCEKS
    encryption.ssl.keystore.keyMetaData.location=/app/tomcat/keystores/ssl-keystore-passwords.properties
    encryption.ssl.truststore.location=/app/tomcat/keystores/ssl.truststore
    encryption.ssl.truststore.type=JCEKS
    encryption.ssl.truststore.keyMetaData.location=/app/tomcat/keystores/ssl-truststore-passwords.properties
    
        SOLR_SOLR_HOST=domainname
        SOLR_ALFRESCO_HOST=domainname
        SOLR_SSL_CUSTOM="-Dsolr.ssl.checkPeerName=false -Dsolr.allow.unsafe.resourceloading=true"
    SOLR_OPTS="$SOLR_SSL_CUSTOM"
        SOLR_PORT=8984
        SOLR_HOST=domainname
        SOLR_SSL_KEY_STORE=/app/alfresco-insight-engine/solrhome/keystore/ssl.repo.client.keystore
        SOLR_SSL_KEY_STORE_PASSWORD=pwd
        SOLR_SSL_KEY_STORE_TYPE=JCEKS
        SOLR_SSL_TRUST_STORE=/app/alfresco-insight-engine/solrhome/keystore/ssl.repo.client.truststore
        SOLR_SSL_TRUST_STORE_PASSWORD=pwd
        SOLR_SSL_TRUST_STORE_TYPE=JCEKS
        SOLR_SSL_NEED_CLIENT_AUTH=false
        SOLR_SSL_WANT_CLIENT_AUTH=true
    
    alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore
    alfresco.encryption.ssl.keystore.provider=
    alfresco.encryption.ssl.truststore.type=JCEKS
    alfresco.host=ip-10-233-4-126.ap-east-1.compute.internal
    alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore
    alfresco.encryption.ssl.truststore.provider=
    alfresco.port.ssl=8443
    alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties
    alfresco.port=8080
    alfresco.encryption.ssl.keystore.type=JCEKS
    alfresco.secureComms=https
    alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties
    
    alfresco.host=domainname
    alfresco.port=8080
    alfresco.port.ssl=8443
    alfresco.secureComms=https
    
    alfresco.encryption.ssl.keystore.type=JCEKS
    alfresco.encryption.ssl.keystore.provider=
    alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore
    alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties
    alfresco.encryption.ssl.truststore.type=JCEKS
    alfresco.encryption.ssl.truststore.provider=
    alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore
    alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties