Updating a deployment revision
by Thomas Diesler
Folks,
I'm looking at bundle update and package refresh. In OSGi a bundle can have multiple revisions, only one revision is active at a time. A revision can be "in use" and "removal pending"
A revision can be added by Bundle.update(). The existing wires to a revision are not touched when a new revision is added. i.e. components that have a wire will continue to use the (old) revision and therefore the (old) class loader until the user explicitly refreshes the transitive graph of effected wirings and establishes a new wiring using the current revisions. If the last user of a revision is removed, a "removal pending" revision is not in use any more - it automatically gets removed too.
I'm trying to map these concepts to what we have in AS8 (what we will need in AS9)
So now the question ….
If deployment A has a dependency on B and B gets replaced with a new version (i.e. deploy --force B) what is supposed to happen?
cheers
--thomas
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Thomas Diesler
JBoss OSGi Lead
JBoss, a division of Red Hat
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
11 years, 1 month
JBOSS Upgrade still compatible ?
by CanI HasU
Hello,
I was assigned to upgrade a bunch of servers to the newest JBoss version.
These servers are RHEL 4.7 , RHEL 4.8 and RHEL 5.5
I don't want to mess up so I was wondering if JBoss is still
Platform-independent here or is the JAVA version gonna cause a problem?
Also can't I just "update" instead of "migrating" all the applications to
the new JBoss? ( That's just something I found during some research I made)
I hope you can help me !
11 years, 1 month
JTA Synchronization.afterCompletion callback can occur in a background thread but JPA EntityManager must be accessed in single-threaded manner...
by Scott Marlow
Related jira issues are HHH-7910 + AS7-6586. HHH-7910 has been around a
bit longer and contains comments about the current plan to address the
issue in Hibernate.
As mentioned in HHH-7910, the JTA specification allows
Sychronization.afterCompletion callbacks to occur in a different thread
than the application thread that is using the transaction (typically for
transaction timeout or when a transaction is propagated to a remote thread).
Since the JPA EntityManager is by design, not thread safe, invoking the
EntityManager.clear() or EntityManager.close() methods from a background
thread while the application thread may be in the middle of an
EntityManager invocation is not the best situation (IMO).
One improvement that we talked to the JBossTM/TS team about, is adding a
TM policy that arranges for the Synchronization.afterCompletion to
always run in the application thread (some of the IRC discussion is
attached to HHH-7910). The TM team doesn't think that they could do
that for both the TX timeout and tx propagating to a remote thread
(JBossTS) uses.
One alternative solution, might be to create a top level container level
queue that the background thread Synchronization.afterCompletion defers
processing to. As soon as the application thread returns control to the
top level, the queue is processed in FIFO order.
*Does AS have any other uses of Synchronization.afterCompletion or
Synchronization.beforeCompletion that expect to run in the application
thread*?
From the JPA specification about thread unsafety:
"
An entity manager must not be shared among multiple concurrently
executing threads, as the entity manager and persistence context are not
required to be threadsafe. Entity managers must only be accessed in a
single-threaded manner.
"
11 years, 1 month
why is jboss-logging a bundle anyway
by Thomas Diesler
Hi David,
why is jboss-logging a bundle anyway?
I thought due to its tight integration with the JDK logging system it needs to be on the boot class path.
How is the jboss-logging bundle lifecycle install/start/stop/update/uninstall supposed to work?
Would it not be better to ship it as a library if it can't work properly as bundle, or can it?
cheers
--thomas
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Thomas Diesler
JBoss OSGi Lead
JBoss, a division of Red Hat
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
11 years, 1 month
"Open to Community" becomes "Awaiting Volunteers"
by Brian Stansberry
Just an FYI -- we've renamed the AS7 JIRA Fix Version fka "Open to
Community" to "Awaiting Volunteers." There's no change to the meaning
of this Fix Version; it's just a name that hopefully better describes
what it's all about.
This is the definition of this Fix Version:
"Issues that are considered valid, but are only expected to be completed
if a community member takes them on. Hence they are unscheduled pending
a commitment from a community member."
The former name gave the impression that issues without this Fix Version
were not "open to the community" which was never the intent.
--
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat
11 years, 1 month
hold off ADDing AS7 children resources to another resource until a runtime state is reached for this resource?
by Jeff Mesnil
I am working on an issue[1] and I am not sure what is the best way to tackle it.
TL;DR
I need to find a way to hold off ADDing AS7 children resources to another resource until a runtime state is reached for this resource.
Once this state is reached, I need to perform the ADD operations.
---
HornetQ server can be started in *backup* mode for failover.
When it is configured to be a backup, HornetQ will start but remain passive: it does not open any sockets or create resources (such a JMS objects). It just waits for a live node failure to become active. Once it detects the live node failure, it will activate, accept connections and create all its resources.
The issue I am working on is to fix the discrepancy between AS7 management resource for HornetQ and its underlying runtime resources.
When HornetQ is started by the AS7 messaging subsystem in backup mode, we also create all the hornetq-server's children resources even though the corresponding HornetQ objects are not available.
As soon as the user interacts with them, it fails because the runtime operation can not be processed by HornetQ.
I can maybe fix this by checking whether the underlying HornetQ resource is available before using it but that'd not be enough.
For example, what'd happen if another service depends on a JMS Queue service that is installed and active but not operational because HornetQ has not loaded the JMS queue resource?
Instead, I'd like to fix this at the level of hornetq-server resource: if the server is passive, no children resource is available in AS7 management model.
Once it becomes active, AS7 resources become available too.
In any case, I create the hornetq-server resource and start the underlying HornetQ server.
If the server is in backup mode, I don't want to add any underlying children resources to AS7 management model. That means that all ADD operations for hornetq-server children will have to check on HornetQ server runtime state to know whether the AS7 resource must be created or not.
Once it becomes active (HornetQ provides a callback API to be notified), HornetQ will create all the underlying HornetQ objects. But I now need to update the AS7 management model by creating the corresponding resources and perform some runtime operations too (e.g. to create a JMS Queue service that can be depended upon).
Do we have subsystems doing such mumbo jumbo trick?
This seems a convoluted way to fix this issue but I have not any other idea at the moment...
jeff
[1] https://issues.jboss.org/browse/AS7-6699
--
Jeff Mesnil
JBoss, a division of Red Hat
http://jmesnil.net/
11 years, 1 month
Console 1.5.2.Final
by Heiko Braun
FYI, we just pushed a maintenance release:
https://issues.jboss.org/browse/AS7-6714
- AS7-6682: Reporting product version instead of release Version in console
- AS7-6676: Security attribute for JacORB Subsystem is missing setting options
- AS7-6550: Confusing behavior of form under the "Unmanaged" tab in deployment's Replace dialog
- AS7-6518: Section "Runtime Operations" should not be visible when empty
- AS7-6516: Wrong value of "runtime-name" property for unmanaged deployments
- AS7-6510: Unable to add Modules for security domains
- AS7-6505: "Add" button for http/ajp connector does not work if no server groups present
- AS7-6493: Unable to create JMS connection factory
- AS7-6283: Web Services Endpoints table in console is not paginated
- AS7-4331: Management operations for accessing transaction logs should be exposed in the web console
Regards, Heiko
11 years, 1 month
Configuration/management functionality AS/Fuse
by Thomas Diesler
Hi Brian/Guillaume,
in the OSGi Working Group kick-off meeting I proposed a line of thought does goes like this:
AS can be seen as an R5 compliant Core Framework that can be bootstrapped like any other compliant framework. We can take proper behaviour of the OSGi API layer for granted and can therefore safely assume that the Core Framework that Karaf currently runs on (i.e. Felix) can be replaced by AS.
For long term consolidation of the two product lines (i.e. EAP & Fuse) there are two functional areas key: management and configuration
There should be one way to configure the various subsystems that run on the platform
There should be one API for managing the platform
The consolidation effort could initially focus on these two areas and aim to elliminate functional overlap and conflicts
In parallel to the general requirement gathering I'd like to start a conversation about the respective management/configuration functionality in the two product lines and initially identify the overlap/conflicts. Perhaps we could start with the easier of the two (i.e. configuration) and hear from each other how this currently works.
How are Fuse products configured?
How does AS unified configuration work?
The goal would be to come up with a specific set of requirements for the target platform that accommodates the configuration needs for both product lines. We could then have a simmilar approach for the management layer.
What do you think?
cheers
--thomas
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Thomas Diesler
JBoss OSGi Lead
JBoss, a division of Red Hat
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
11 years, 1 month