openliberty / blogs Goto Github PK
View Code? Open in Web Editor NEWBlog posts for https://openliberty.io
Home Page: https://openliberty.io/blog/
License: Other
Blog posts for https://openliberty.io
Home Page: https://openliberty.io/blog/
License: Other
Gordon's surname is misspelt - check spelling on Bluepages and fix in the metadata.
@follis I'm just tidying up the backlog so I can see what we have outstanding (sorry for the delay in responding to the PR attached to this). Then I'm going back over the list to review/edit.
Created for tracking blog post progress.
What's new in 3.0 release of Liberty Maven plugin.
https://github.com/OpenLiberty/blogs/blob/master/drafts/2019-09-18-liberty-maven-plugin-30.adoc
The stack overflow button in the following blog has no hover state:
https://openliberty.io/blog/2018/12/14/microprofile21-18004.html
Write about Space Sentry, the story/journey there, and how one can replicate and build their own as well as to contribute.
I have a blog post from 3 years ago that I find is still relevant in some ways so I would like to convert it to use newer technology (Maybe Kube) and maven:
Here is the current blog post: https://developer.ibm.com/wasdev/docs/using-docker-compose-configure-topology-websphere-liberty-ibm-mq/
Introduce dev mode and associated improvements
https://github.com/OpenLiberty/blogs/blob/master/drafts/2019-09-18-liberty-dev-mode.adoc
By Jamie Coleman and Neil G Young
A transaction is an atomic unit of work in which multiple updates (e.g. to a database) must be completed within the transaction or, if there are problems, none of the updates are made at all (also known as two-phase commit). The purpose of transactions is to avoid situations where only part of an update is made. This article demonstrates a WebSphere Liberty application that processes global (XA) transactions across multiple resources and how Liberty automatically recovers the XA transaction during a simulated server failure in a cloud environment.
A common example of a transaction is when multiple SQL updates to a relational database are committed atomically by the database during the processing of an SQL COMMIT
statement. In this case, the transaction is local to a single resource, the database manager, and is entirely controlled by it.
If an application accesses multiple resource managers, such as database or message queue managers, an external transaction manager is required to coordinate the updates across the resource managers to ensure an atomic outcome (i.e. all the updates are made to all the resources, or none are made at all). WebSphere Liberty contains a transaction manager which can manage such global, or XA, transactions.
In the absence of a transaction manager, a system failure can lead to inconsistent data in the resources. The transaction manager in a Liberty server processes transaction through a two-phase commit protocol. The Liberty transaction manager ensures that all participants in the XA transaction either commit or roll-back their changes. The protocol is designed to be robust in the face of many kinds of system failure. To enable recovery from failure, all the participants in an XA transaction each write their own persistent log records.
If a system failure is encountered, it is possible for an XA transaction to be left in-doubt, where not all participants have confirmed that they have committed or rolled-back their activities. In such situations, resources are locked in the corresponding databases or message queues, and other applications are unable to access those resources. In most cases, Liberty is able to automatically recover these resources by resolving in-doubt XA transactions on a server restart.
Before starting this tutorial, note that the callback code that we use to halt the server is not supported by IBM. It might change without notice and is not designed for production use. We've simply provided it for this tutorial to demonstrate XA transaction recovery. So don't use it for real!
We've tested this tutorial on Ubuntu 14.04 running on Amazon's EC2 infrastructure but it should also work for other OSes and cloud providers.
To set up your environment:
apt-get update
in your EC2 instance.apt-get install unzip
to install unzip
into your EC2 instance.apt-get install git
to install Git on your EC2 instance.apt-get install default-jre
to install a JRE./opt/ibm
.If you prefer to use a built version of the test application and the hook that allows you to terminate the server before a transaction completes, you can download it from the GitHub Releases page then skip to the next section.
To clone the git repository and build the application yourself:
wlp/transactionRecovery/webapp
directory and build the application with the command:
mvn clean install
wlp/transactionRecovery/callback
directory and repeat the command to build the callback hook code that we'll use for stopping the server mid-transaction:
mvn clean install
To deploy the application to the Liberty server and configure the server:
bin
directory of your Liberty installation and running the command:
sudo ./server start --clean
This automatically creates a default server in the wlp/usr/servers/defaultServer
directory of your Liberty installation.
wlp/usr/servers/defaultServer/dropins
.sudo ./server stop
<li>Copy the callback code JAR file that you built earlier (<code>com.ibm.ws.Transaction.test.impl.XAFlowCallbackImpl_1.0.jar</code>) into the <code>lib</code> directory of your Liberty installation.</li>
<li>Replace the <code>server.xml</code> file in <code>wlp/usr/servers/defaultServer</code> with a copy of the <code>server.xml</code> file from the <code>transactionRecovery</code> directory in the clone of the Git repository.</li>
<li>Create a file in the <code>wlp/usr/servers/defaultserver</code> directory called <code>jvm.options</code>. Add the following line to the <code>jvm.options</code> file:
-Dcom.ibm.ws.Transaction.fvt=true
The jvm.options
file calls the code that will halt the server just before your transaction is committed. Alternatively, to see the application complete a transaction successfully, remove the jvm.options
file.
xaflow-1.0.mf
file located in transactionRecovery/webapp
in the cloned Git repository to the wlp/lib/features
directory of your Liberty installation.To run the test:
console.log
or messages.log
files in wlp/usr/servers/defaultserver/logs
. Your server is running if you see the message “the server is ready to run a smarter planet*”.<a href="https://developer.ibm.com/wasdev/wp-content/uploads/sites/9/2016/09/AWS-EC2-blanked-arrow.png"><img src="https://developer.ibm.com/wasdev/wp-content/uploads/sites/9/2016/09/AWS-EC2-blanked-arrow.png" alt="AWS EC2 blanked arrow" width="1899" height="1047" class="alignnone size-full wp-image-19022" /></a></li>
<li>Visit the application web page in your browser. The web page URL is constructed from the public IP address, followed by the Liberty server’s HTTP port number (9080) and the application name (e.g. xaflow), followed by the method we will be calling. For example: <code>xxx.xxx.x.xxx:9080/xaflow/xaflow?test=setupRecXAFlow001</code>.
The web page should load for a couple of seconds then display a message saying something like page cannot be displayed
. This is because when you ran the application, it created two databases with tables, created a two-phase commit XA transaction for the two databases, and then crashed the server before it could finish. Don’t worry! This is exactly what we wanted to test.
wlp/usr/shared/resources/data
directory, then start the Derby interactive command line interface:
ij
<li>On the ij command line, run the following commands to try connect to the database and view a table which should not be possible at the moment:
connect 'jdbc:derby:exampleDB';
select * from NEIL_DERBY;
The commands should should display a null pointer exception because Liberty has locked the database while the XA Transaction is in-doubt.
<li>Before we can restart the server, we need to make a configuration change. The <code>jvm.options</code> file you created earlier is the reason the server crashed so you need to rename this file so that it does not halt the server on restart. From the <code>defaultServer</code> directory, rename the file:
mv jvm.option jvm.optionsOld
<li>Start the server.</li>
<li>Check the <code>messages.log</code> file. You should see that the server has started, the transaction has now been successfully recovered and you are ready to create a smarter planet.</li>
Congratulations! You have successfully deployed WebSphere Liberty into Amazon Web Services, deployed an application, created a transaction and two databases, crashed the server mid-transaction, and then recovered that transaction. In a future article, we'll look at how to achieve the same thing but over distributed data centers in different locations.
Let us know what you think!
Blog about how to analyze Open Liberty logs with Splunk, using Docker containers.
Laura: Aim at publishing Wed 27th May.
Updates on the latest in developer experience for Open Liberty.
https://github.com/OpenLiberty/blogs/blob/master/drafts/2019-09-16-developer-experience-updates.adoc
Right now the instructions are in a rough state, but are enough to get someone going with blog development.
FYI @lauracowen
A blog post elaborating on the results that are on openliberty.io
There is a build warning when rendering the blog post file 2018-12-20-http-forwarded-header.adoc
. The warning does not impact the refreshing of openliberty.io.
asciidoctor: WARNING: 2018-12-20-http-forwarded-header.adoc: line 51: section title out of sequence: expected level 2, got level 3
Provide instructions in the README.md or equivalent on how to use the docker image Kin/Laura created for hosting the website locally.
An example application to calculate a Mandelbrot Set using Microprofile/Open Liberty microservices implemented in Scala. The goal is to demonstrate technical possibility of using Open Liberty with Scala and possibility of deploying such solution as Kubernetes services.
Submitted/authored by @krzsam (from discussion with @Emily-Jiang )
When merges are made to master
, we can add some Travis CI automation to rebuild our test environments to host new blog commits.
Improving diagnostics with added fields
What is LRC?
How does LRC work with JSON Logging
Examples
LRC with strings
LRC with special extensions (_bool, _float, ...)
Things we need to ensure we include in the blog:
Document order relative to other similar servlet body filters
Document configuration error conditions, how to verify configuration
is as expected(types are what is expected for example). There are also multiple examples in the design document.
[@halim-lee @ellen Lau] CL19389: blog about new logstashCollector-1.0 and json logging dashboards
Similar to #223 but modified to work for RHOCP.
Blog about what we have contributed to generate template interfaces for MP Rest Client. This is targeted for 4.2.3 of Open API Tools. Can align post with that.
Also, cover its corresponding VS Code extension if possible too.
Accessiblity issue for blog post Minimise turnaround times with Open Liberty's dev mode on Aug 22, 2019:
This causing DAP to fail due to it's missing the author name. Please follow the the blog template for author name . Blog template can be find here: https://raw.githubusercontent.com/OpenLiberty/blogs/master/drafts/template.adoc
= Title
Sebastian Daschner <https://github.com/sdaschner>
Write about Liberty Bikes and the story there. Invite folks to try and check it out and contribute.
Learn how to configure the Prometheus Alertmanager for Open Liberty and MicroProfile Metrics to send alerts via Slack. Alerts help quickly and automatically detect problems for better monitoring and maintenance of your application.
OpenLiberty supports JAX-RS 2.0 and many users run into problems with JSON serialization - and the solution is for them to package Jackson with their app. I wrote this article for WASDev.net a few years ago to address this issue for WebSphere Liberty users, but it is equally applicable to OpenLiberty users, so I think it should be ported over to the OL site.
Here is the link to the original article:
https://developer.ibm.com/wasdev/docs/jax-rs-websphere-liberty-byo-jackson/
Write a blog for the following Epic: OpenLiberty/open-liberty#10086
https://openliberty.io/blog/2019/09/13/microprofile-reactive-messaging.html
The link in "Get Open Liberty 19.0.0.9" points to the blog post itself?
PR #335
https://raw.githubusercontent.com/OpenLiberty/blogs/master/drafts/release-blog.adoc needs a space between the author's Github link and the first tag (content). There's also a missing second quote in the blog description.
Issue to track progress of Simple Timer blog post for MicroProfile Metrics 2.3
as we have done in the past with documenting how to get a standalone non-kubernetes Liberty server to forward logs to ICP's ELK, we need to document how to do the same with OKD/OCP's EfK
[@yushan Lin] CL18702: LG-239: Liberty standalone logging to OKD/OCP EfK - Manual Setup
MP GraphQL 1.0 (Epic OpenLiberty/open-liberty#7956 ) is targeted to ship with Open Liberty 20.0.0.6. I'd like to include a blog post describing how users could build GraphQL applications and take advantage of Open Liberty value-add features like integration with application security for authorization checks, etc.
Laura: Aim to publish on Wed following the release (10th June)
Introduce MicroShed Testing
https://github.com/OpenLiberty/blogs/blob/master/drafts/2019-09-20-microshed-testing.adoc
I'd like to promote our early success with the Eclipse Transformer project as it pertains to the development and testing of Jakarta EE 9 with Open Liberty. Need to show that there are "better" ways of moving to Jakarta EE 9 other than the brute force method.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.