问题标签 [aries]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-camel - 如何在捆绑关闭期间从骆驼访问蓝图豆
我有一个蓝图包,其中包含一些 Camel 路线引用的几个 bean。当我停止捆绑(直接或通过要求 Karaf 终止)时,BluePrint 容器几乎立即被销毁。
同时,Camel DefaultShutdownStrategy 将等待我的机上交换完成。此时,任何从 Camel 解析 bean 引用的尝试都将失败(因为注册 bean 的 BlueprintContainer 已被破坏),并且我将得到 org.apache.camel.NoSuchBeanException。
有没有办法让 BluePrint 注册表保持活动状态,直到 Camel 完成关闭?
我的环境是 Karaf 4.1.1/Camel 2.18.3/Java 8/Windows。
algorithm - 当 DBMS 在 ARIES 算法的恢复阶段崩溃时会发生什么?
根据我对 ARIES 算法的理解,要支持 ACID 事务,必须使用 WAL(预写日志):所有写入都会被记录。
据说它使数据库能够在崩溃之前回滚由未提交事务所做的更改。
对于每次写入,我们都会记录有关实际写入的信息(如何重做,如何撤消)。
在恢复阶段,我们分析日志以执行 REDO 操作:
- 我们阅读了日志条目
- 我们将更改应用到数据库
- 我们将日志条目设置为完成
然后,为了执行 UNDO,写入新的日志条目(因为它毕竟是写入),然后在检查点期间将更改应用于数据库。
在检查点期间,我想我们只是对所有提交的条目执行重做。
我还没有找到任何有关以下情况的信息:
- 检查点期间发生崩溃
- 在重做阶段、更改应用到数据库之后以及更新日志之前/期间将其设置为完成时发生崩溃
在这些情况下,一些更改已应用到数据库,但未反映在日志中,从而使数据库处于不一致状态。
注意:这是我用来了解更多关于 ACID 事务和 ARIES 算法的一些链接:
- https://en.wikipedia.org/wiki/Algorithms_for_Recovery_and_Isolation_Exploiting_Semantics
- http://www-inst.eecs.berkeley.edu/~cs186/sp08/aries.html
- https://fr.slideshare.net/PulasthiLankeshwara/aries-recovery-algorithms
- http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html
我目前正在阅读 SQLite 的源代码,以了解整个事情是如何实现的。
提前感谢您对此主题的任何澄清。
java - EclipseLink 静默忽略 persinstence.xml 中的映射文件
我试图在我的 orm.xml 文件中声明转换器:
orm-pg.xml:
持久性.xml:
因为转换器没有注册,我添加了另一个映射文件进行调试:
该文件不存在。令我惊讶的是,持久性单元已经启动,日志中甚至没有任何警告。
现在我很困惑,因为我不知道我的转换器是否因为 orm.xml 错误或根本没有加载而没有注册。
如果映射文件是否成功加载,我该如何调试?为什么忽略引用的丢失文件?
我正在使用 Aries JPA 2.5.0 在 Karaf Container 中进行部署
mysql - ClassNotFoundException:尝试加载类时检测到循环 - 在实体类(在 Karaf 中启动 JPA 包时)
我的问题与"Cycle detected while trying to load class"
启动jpa-only bundle
.
我创建了一个JPA
带有 maven 原型的包,并将其修改pom.xml
为与Karaf (4.0.1), Aries Blueprint, MySQL, OpenJPA, OpenJDK 1.8.
使用添加的 eclipse-tooling 生成的实体类一起使用persistence.xml
。
我能够编译它并将其安装在 Karaf 上而不会出错。启动捆绑包时出现错误。这个类运行良好Karaf 2.x (Geronimo App Server).
我怀疑它可能与@OneToMany/@ManyToOne
类中的带注释字段有关,因为如果我只生成一个没有连接的类,捆绑就完美地开始了。我也尝试pax-jdbc-mysql
了方法(不使用蓝图),但除了dataSource
成功创建之外,结果相同。我的课程只有jpa
注释。
捆绑包结构如下:
类定义示例:
我得到的错误是:
我正在使用的 pom.xml 是:
蓝图文件:
提前致谢!!
java - 安装功能 pax-jdbc-pool-aries 后无法连接到 PostgreSQL 数据库
我正在为我的 PostgreSQL 连接使用简单的 pax-jdbc 配置:
但是,在我安装了 feature 之后pax-jdbc-pool-aries
,出现了问题并且我收到了错误,好像密码参数会突然被忽略:
引起:org.postgresql.util.PSQLException: FATAL: Rolle ?mywindowsuser? 在 org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:691) ~[?:?] 在 org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:207) ~[?: ?] at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65) ~[?:?] at org.postgresql.jdbc2.AbstractJdbc2Connection.(AbstractJdbc2Connection.java:146) ~[?:?] at org. postgresql.jdbc3.AbstractJdbc3Connection.(AbstractJdbc3Connection.java:35) ~[?:?] at org.postgresql.jdbc3g.AbstractJdbc3gConnection.(AbstractJdbc3gConnection.java:22) ~[?:?] at org.postgresql.jdbc4.AbstractJdbc4Connection。 (AbstractJdbc4Connection.java:47)~[?:?] at org.postgresql.jdbc4.Jdbc4Connection。
文档(例如这里https://ops4j1.jira.com/wiki/spaces/PAXJDBC/pages/61767716/Pooling+and+XA+support+for+DataSourceFactory)没有提到使用 aries 池时的任何陷阱,它似乎仅安装 aries 池功能就破坏了工作配置。
发生了什么,以及如何将 PostgreSQL 与 pax-jdbc 和 aries-pool 一起使用?
我在 Windows 10 上使用 Karaf 4.1.x。
apache-camel - 为什么以下捆绑包处于宽限期?
我有两个包含camel-activemq 东西的蓝图文件包。喜欢
如果我在第二个捆绑蓝图文件中使用常量值,则一切正常。一旦我在那里使用 ${activemq.url} 之类的配置,它看起来找不到它并尝试无限次数地获取它。第二个捆绑包无法解决。
如果我使用第二个配置文件,它只是像 com.mycompany.context_1 这样的重复配置文件,那么第一个包无法通过以下事务相关消息解析。以下捆绑包处于优雅状态的原因是什么?
java - 跨 Equinox 区域的 BundleEvents
我们在 Equinox OSGi 运行时中运行我们的应用程序。有一个与 OSGi 本身一起使用的扩展机制来加载来自 2nd/3rd 方的插件。问题是这些插件可能会引入干扰“核心”应用程序或其他插件的包。
这就是为什么我正在尝试使用 Aries 子系统 2.0.10 来在混合中引入一些捆绑范围,并避免干扰“核心”应用程序和其他插件,还允许插件开发人员使用通用库的版本(例如 Spring ) 他们想要的。
目前,我从一组插件包中生成一个 ESA,并在 OSGi 框架中安装 Application 类型的子系统。问题从启动子系统时开始,我们的扩展机制(在内核区域内)依赖于为子系统内的一组启动包触发的 BundleEvents,但子系统部署在其自己的区域中,因此包事件被过滤,并且永远不会到达内核区域中的侦听器。
有没有办法从内核区域中的子系统区域接收 BundleEvents,而不使用子系统内部的“人工”包,在某些全局事件总线上重新传输所述事件?
java - 带有 Eclipselink 的 Apache Aries JPA:java.lang.LinkageError
我正在尝试将 Apache Aries JPA 与 Eclipselink(和一个 MSSQL 数据库)结合使用。我的 OSGi 框架是 Apache Felix,我正在使用 DS(通过使用 BndTools)。经过长时间的反复试验,我找到了必要的捆绑包:
- javax.persistence
- 包含 jdbc.mssql 的 DataSourceFactory 的包
- org.apache.aries.jpa.api
- org.apache.aries.jpa.container
- org.apache.aries.jpa.support
- org.apache.aries.transaction.manager
- org.apache.aries.jpa.javax.persistence_2.0
- org.apache.aries.util
- org.apache.geronimo.specs.geronimo-jta_1.1_spec
- org.apache.aries.jpa.eclipselink.adapter
- org.eclipse.persistence.antlr
- org.eclipse.persistence.asm
- org.eclipse.persistence.core
- org.eclipse.persistence.jpa
- org.eclipse.persistence.jpa.jpql
当我开始这个配置时,我得到以下异常:
哪个包应该包含 javax.sql.DataSource 类?我希望这将成为 JDK 的一部分。
有谁知道这是什么原因造成的,或者我该如何解决这个问题?如何让 Apache Aries JPA 在 DS 环境中与 Eclipselink 一起运行?
谢谢。
osgi - 从 Spring DM 1.2 Spring 3 / KARAF 4.0.10 迁移到 Blueprint、Spring 5 和 KARAF 4.2.0
我使用的是 KARAF 4.0.10,它安装了 spring 3.1.4 作为引导功能。我们将 spring 用于 web 模块 (spring-mvc) 和 spring-dm (spring-osgi-web)。
这是我的示例 web.xml。那是我的 web.xml Mvc Servlet
随着我们将 KARAF 升级到 4.2.0,spring 升级到了 5.0.4,spring-dm 不再支持它。现在已弃用。根据互联网搜索,我发现建议继续使用双子座蓝图作为 spring-dm 的替代品。我已经下载了gemini-blueprint/IO、Core 和extender 模块,方法是将其配置为maven 依赖项。
您能否指导一下 web.xml 中应该更改哪些内容以继续使用双子座蓝图作为 spring-dm 的替代品?
还有什么方法可以让它工作而不使用蓝图并直接在 web.xml 中引用 spring jar 文件
java - java.sql.SQLException:在关闭的连接上调用 createStatement()
在我的项目中,我希望有 api 端点来获取订单详细信息。在内部它使用 ORM 和数据库连接池。该过程有效,但每十天有一次我收到以下错误消息并且 api 处理失败。知道可能是什么问题和可能的解决方案吗?
使用的工具
阿帕奇卡拉夫 (4.1.2)
用于 api 的 Apache cxf
休眠 5.2.10
附加捆绑包
连接池(OPS4J Pax Jdbc)
持久性.xml
错误日志堆栈跟踪