Build 为什么本地应用程序的构建时间会受到网络的影响?

Build 为什么本地应用程序的构建时间会受到网络的影响?,build,xpages,lotus-notes,Build,Xpages,Lotus Notes,通过WAN在服务器上构建包含几个JAR、Java源代码和~50个XP/CC元素的XPages应用程序大约需要几分钟。我已将应用程序复制到本地,构建时间降至~10秒 因为几天前本地应用程序的构建速度非常慢,大约2-5分钟。经过一些实验后,有了一个解决办法:在location文档中禁用TCP端口——它将构建时间缩短到几秒钟。即使它能工作,也没有多大帮助-测试需要用户进行身份验证,所以我需要将设计更改复制到远程或本地服务器-这意味着每次都要更改位置(在线/离线) 更新2013-04-04:我复制了我的

通过WAN在服务器上构建包含几个JAR、Java源代码和~50个XP/CC元素的XPages应用程序大约需要几分钟。我已将应用程序复制到本地,构建时间降至~10秒

因为几天前本地应用程序的构建速度非常慢,大约2-5分钟。经过一些实验后,有了一个解决办法:在location文档中禁用TCP端口——它将构建时间缩短到几秒钟。即使它能工作,也没有多大帮助-测试需要用户进行身份验证,所以我需要将设计更改复制到远程或本地服务器-这意味着每次都要更改位置(在线/离线)

更新2013-04-04:我复制了我的当前位置文档并删除了主服务器和目录服务器。令我惊讶的是,在这个位置上,构建时间回到了几秒钟——启用了TCP端口,因此可以进行复制。更令人惊讶的是,将主/目录服务器返回到新位置并没有重现问题——事实上,它们不会影响性能。我知道这一点,因为我已重命名了当前位置文档,并且一切正常。据我所知,客户端配置中的“某物”与位置名称有关。多亏了西蒙的提示,我将进一步调查


问题仍然悬而未决:我正在寻找一些(eclipse)首选项来控制这种行为-在构建本地应用程序期间与服务器进行意外通信。

其他开放应用程序可能会同时构建(这看起来像是我遇到的一个bug)。确保关闭所有其他应用程序和基于服务器的副本。打开的应用程序的图标显示在应用程序列表中,即使您关闭并重新打开设计器,它们仍保持打开状态。在Designer 9中,右键单击应用程序并选择“关闭应用程序”。在8.5中,您需要使用Package Expror进行关闭

另一个好方法是使用工作集。仅构建开放工作集中的应用程序(AFAIK)。仅使用此应用程序创建工作集(且此应用程序仅在此工作集中)

更新1

如果这些都没有帮助,我会删除/重命名bookmark.nsf、Cache.NDK和desktop8.NDK。然后只打开这一个应用程序,看看会发生什么

更新2

检查是否没有引用的项目。右键单击应用程序并选择“项目属性”。从中选择“项目参考”,并确保未选中任何复选框

更新3

根据您的更新,我将在location文档中检查以$开头的项目名称。有时会保存IP地址等,这可能会导致此问题。所有这些项目都可以删除。

还不是解决方案,但可能有助于调查。如果您稍后发布结果,我将进一步更新

调试说明。

将以下内容添加到启动Designer客户端的快捷方式中

-RPARAMS -console -debug -separateSysLogFiles -consoleLog
启动designer客户端。这也将打开OSGi控制台

复制问题。当它仍在OSGi控制台中进行时,请键入以下内容:

dump threads
这样做三次,每次转储完成之间的间隔时间很短。完成后,在中打开三个堆转储(在IBM_TECHNICAL_SUPPORT文件夹中)

它将向您显示在所有三个转储中哪些线程是一致的。查看这些,并查找可能是功能区域的包名称/调用。一旦你有了它,你就可以尝试为相关的类添加调试

例如:假设您注意到线程中的“com.ibm.designer.domino.ui.commons”,然后您将编辑rcpinstall.properties文件。它将在:

<Notes Install>\Data\workspace\.config\rcpinstall.properties
现在,当您重新启动designer客户端时,它将在该包的workspace\logs文件夹中生成调试输出。然后,您需要查看跟踪日志,查找延迟发生的时间,并查看它是否引用了相关的设计元素

如果可能(如果您还没有使用它),尝试使用Domino designer的版本9(您不必使用Domino9来做到这一点,它可以与Domino8.5.3配合使用)

对于我们的项目,构建时间从几分钟减少到几秒钟。我猜,他们最终在IBM注意到,构建过程在很大程度上依赖于与服务器的连接,并利用它做了一些事情。 使用新的设计器,您不必将事件复制到本地。您可以直接在本地服务器上工作。

解决方案: Teamstudio CIAO钩住designer并检查设计元素的每次更新。对我来说似乎缺少代码优化:它检查当前构建的设计元素(每一个,一个接一个)是否应该在CIAO配置数据库中进行控制

这解释了为什么通过重命名位置文档来解决此问题。昨天,当性能问题再次出现时,我很失望。幸运的是,我回忆了CIAO安装到该位置文档的时间。CIAO使用数据目录中的
teamstudio.ini
文件来配置每个位置文档使用的CIAO配置数据库。查找条目:

CIAOConfigDb[location name]=server name;CIAO\CIAOConfig.nsf
要在连接到服务器(用于复制或本地服务器)的本地副本上进行开发,请使用禁用CIAO的位置文档


这仅适用于属性
ForceConfigLocation=0

。您是否在服务器/客户端之间进行了定时复制,并且它正在尝试复制元素?@SimonO'Doherty我使用定时复制。关闭后,构建时间仍然很长,只有几分钟。根据最新更新,您是否使用代理服务器?如果是,则将其设置为忽略本地主机。@SimonO'Doherty否,无代理。您的应用程序是否使用复合应用程序?不是我的情况:我已关闭自动生成,并通过右键单击应用程序/生成调用生成-因此不会生成其他应用程序
CIAOConfigDb[location name]=server name;CIAO\CIAOConfig.nsf