Java articles

Primary tabs

The Database Backend

The first thing that any webapp needs is a persistance storage. Generally speaking Oracle databases are generally a very safe choice. But for small and medium based businesses this can result in prohibitive costs. Mysql/MariaDB is a popular choice here and is running most of the web. But at this point I am deciding against the popular choice and going for Postgre. The main thinking and reason being that Postgre is considered very close to an Oracle DB. Hence later if I wish moving my schema over to an Oracle DB is generally considered do-able.

Building a Webapp Store

So I have been silent for some time. Mainly due to deep diving into new territories since I left Oracle. Now I think it is time to put my new skills to some work and test them out. To that end, I thought that I need to build a webapp project for myself. Just to assert what I am learning and to learn even more from hands on practice.

Memory Profiling for Novices ( Heap OutOfMemory OOME error )

So sometimes out of memory errors crop up in you application. But to troubleshoot these should not be that complicated. Let me show you with Oracle's Visual VM, how you can quickly get down to the root cause of your out of memory errors. All you need Oracle's Java JDK installed on your system and the VisualVM tool that comes with it. At the time of writing the version I used was with JDK 8 (1.8.0_144). On a Mac OSX system all you need to do is type "jvisualvm" on your terminal and it will just popup. If you have your paths properly setup under windows and linux, it should also just work.

Lambda Recipe for attribute validation of Collection of POJOs

So here is a recipe you can use to validate a POJO attribute for some value. In my case I will show you how to check if attributes were set to null. But you can expand on the example as an exercise for yourself.

So here is the template method for a single object and a collection of objects:

Adf :1-1-association returning more than one row fix by overriding findOrCreateAssociationAccessorRS

 

So this was a strange issue, I face when writing a certain Junit test for a 1:1 association. I was creating a new row which partially fullfilled the 1:1 association condition, and when programmatically asking on this 1:1 assocaition about the other end, the newly created row was getting returned.

 

ADF DI - How to operate on a selected row in the table component within excel

ADF-DI Excel

 

ADF DI is ADF's desktop integration that enables a user to work with data in an excel sheet. It is not too feature rich and has its limitations, but it also does well, what it sets out to do. Basically batch creates, deletes and updates are really no problems for tables.

 

A case of oracle.jbo.TooManyObjectsException : Change createRowFromResultSet to createInstanceFromResultSet

TooManyObjectsException

So there are some documented cases of this exception happening and some remedies there-in, if you google this problem.

What if you think you don't fall into this category. So let me "describe" for you a scenario and if you fall into this category, this might save you some pain in troubleshooting this scenario. Again, this might not be the case for you and simple plain vanilla advice might be all you need. If the description some how matches your use case, you can try the solution I propose.

Part 3 : Output Debug SQL statements on a Managed Server on a Production Weblogic 10.3 Cluster

So if you have already read my debugging adventures on a production clone Weblogic server part 1 and part 2, this can be called the part 3 of that series.

Part 2 : Remote Debugging a Managed Server on Production Weblogic 10.3 Cluster via SSH tunnelling

So this is a follow up article to part 1 here. If you are reading this, I am assuming you were not able to connect your debugger to the port opened in part 1, same as me. Well don't despair. There is a solution. In my case apparently only common ports were opened on the system, as it was supposed to be built close to a production system. Or actually some network switch or a physical hardware must be blocking access to the port. For this part, I was not sure. And the IT person supporting me also probably also didn't know the cause.

Pages