草庐IT

关于 oracle:weblogic.Server 创建域但不启动它(厨师食谱)

codeneng 2023-03-28 原文

weblogic.Server to create domain but don't start it (Chef cookbook)

由于我正在与 Chef 合作以实现自动化,因此我需要为 weblogic 创建一本说明书。问题是,当执行说明书时,它会在最后一步挂起,这是完全正常的,因为该步骤运行 weblogic.Server Java 类以创建新域,然后运行服务器。所以,我想运行 weblogic.Server 来只创建域并继续执行最后的步骤。有没有办法做到这一点?

我已尝试使用参数 weblogic.management.startupMode = SHUTDOWN,但它不起作用。我知道考虑的论点,因为在日志文件中执行 tail -n 1000 | grep SHUTDOWN 时,我看到:

1
2
ip-addres-root:~ # tail -n 1000 -f /opt/middleware/weblogic/mydomain/servers/myserver/logs/myserver.log | grep SHUTDOW
weblogic.management.startupMode = SHUTDOWN

我正在使用它来创建域:

1
2
3
4
$JAVA_HOME/bin/java $JAVA_OPTIONS -Xmx1024m -Dweblogic.management.username=myuser \\
-Dweblogic.management.password=mypassword1 \\
-Dweblogic.management.GenerateDefaultConfig=true \\
-Dweblogic.management.startupMode=SHUTDOWN weblogic.Server

如果我执行运行 weblogic 的步骤并尝试在输出末尾创建一个新域(使用上一个命令),则会看到:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<06-jul-2014 04H35' UTC> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
<06-jul-2014 04H35' UTC> <Warning> <Store> <BEA-280101> <The persistent file store"_WLS_myserver" is forced to use buffered I/O and so may have significantly degraded performance. Either the OS/hardware environment does not support the chosen write policy or the native wlfileio library is missing. See store open log messages for the requested and final write policies. See the documentation on store synchronous write policy configuration for advice.>
<06-jul-2014 04H35' UTC> <Warning> <HTTP> <BEA-101296> <Unable to load the default compiler class"com.sun.tools.javac.Main". Using the default javac compiler to compile JSPs.>
<06-jul-2014 04H35' UTC> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY>
<06-jul-2014 04H35' UTC> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<06-jul-2014 04H35' UTC> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic Service successfully.>
<06-jul-2014 04H35' UTC> <Notice> <Server> <BEA-002613> <Channel"Default[2]" is now listening on 127.0.0.2:7001 for protocols iiop, t3, ldap, snmp, http.>
<06-jul-2014 04H35' UTC> <Notice> <Server> <BEA-002613> <Channel"Default" is now listening on 10.101.1.63:7001 for protocols iiop, t3, ldap, snmp, http.>
<06-jul-2014 04H35' UTC> <Notice> <Server> <BEA-002613> <Channel"Default[1]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, snmp, http.>
<06-jul-2014 04H35' UTC> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server"myserver" for domain"mydomain" running in Development Mode>
<06-jul-2014 04H35' UTC> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
<06-jul-2014 04H35' UTC> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
<06-jul-2014 04H35' UTC> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<06-jul-2014 04H35' UTC> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>

这让我觉得 startupMode=SHUTDOWN 被忽略了,因为它在最后说 <Server started in RUNNING mode>

有没有办法创建一个域但不启动它,或者告诉厨师,在我不知道,等待 15 分钟后继续?


如果您只是不想启动它,一种解决方案是使用 weblogic 配置 GUI 创建域"模板",例如/opt/ora/mw/wlserver_10.3/common/bin/config.sh。一旦有了模板 jar 文件,就可以从 Chef 调用以下命令:

1
2
`/opt/ora/mw/wlserver_10.3/common/bin/unpack.sh -template=<path to your template.jar>
-domain=<path to where you want to install the domain`

这将创建域但不会启动服务器。

一个快速/简单的解决服务器问题的方法是后台调用创建域并将其发送到日志文件。然后通过 bach 脚本监控日志以确保 RUNNING 状态成功退出,例如:

1
2
3
4
5
6
7
8
9
10
11
execute"start weblogic in #{weblogic_home}/WLSDomains/#{node[:som][:domain_name]}" do
  command"$JAVA_HOME/bin/java $JAVA_OPTIONS ... weblogic.Server > /tmp/start-weblogic.log 2>&1 &"
  action :run
end

execute"waitForRunning -- #{weblogic_bin}/waitForRunning.sh" do
    Chef::Log.debug("Waiting for WebLogic server to start")
    command"waitForRunning.sh"
    cwd"#{weblogic_bin}"
    action :run
end

其中 waitForRunning.sh 将循环 X 时间,将日志文件搜索为 RUNNING 状态,然后在达到时退出,如果达到时间限制,则退出 exit 1

编辑

2>&1 & 基本上是将标准错误重定向到标准输出,并将它们都重定向到一个文件,因此该过程完全后台,这将导致 Chef 继续下一步。下一步,创建一个脚本来监控日志,您想要执行一个 while 循环,然后在满足条件时显式退出循环,然后 Chef 将知道该步骤已完成并继续前进。

  • 看起来确实是一个很好的答案,但是,它是什么意思 2>&1 & 以及,是否会达到 waitForRunning -- #{weblogic_bin}/waitForRunning.sh 执行资源?它不会等待第一个块停止,如果我不执行 ctrl c 它将永远不会?
  • 上面在答案中解释过,太大而无法格式化为评论

有关关于 oracle:weblogic.Server 创建域但不启动它(厨师食谱)的更多相关文章

  1. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  2. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  3. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  4. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  5. ruby - 如何使用 RSpec::Core::RakeTask 创建 RSpec Rake 任务? - 2

    如何使用RSpec::Core::RakeTask初始化RSpecRake任务?require'rspec/core/rake_task'RSpec::Core::RakeTask.newdo|t|#whatdoIputinhere?endInitialize函数记录在http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/RakeTask#initialize-instance_method没有很好的记录;它只是说:-(RakeTask)initialize(*args,&task_block)AnewinstanceofRake

  6. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  7. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  8. ruby - 有人可以帮助解释类创建的 post_initialize 回调吗 (Sandi Metz) - 2

    我正在阅读SandiMetz的POODR,并且遇到了一个我不太了解的编码原则。这是代码:classBicycleattr_reader:size,:chain,:tire_sizedefinitialize(args={})@size=args[:size]||1@chain=args[:chain]||2@tire_size=args[:tire_size]||3post_initialize(args)endendclassMountainBike此代码将为其各自的属性输出1,2,3,4,5。我不明白的是查找方法。当一辆山地自行车被实例化时,因为它没有自己的initialize方法

  9. ruby - 使用多个数组创建计数 - 2

    我正在尝试按0-9和a-z的顺序创建数字和字母列表。我有一组值value_array=['0','1','2','3','4','5','6','7','8','9','a','b','光盘','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','','u','v','w','x','y','z']和一个组合列表的数组,按顺序,这些数字可以产生x个字符,比方说三个list_array=[]和一个当前字母和数字组合的数组(在将它插入列表数组之前我会把它变成一个字符串,]current_combo['0','0','0']

  10. UE4 源码阅读:从引擎启动到Receive Begin Play - 2

    一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame

随机推荐