Design Principles and Patterns

L in SOLID – Liskov Substitution Principle. Short explanation with example.

Let Φ(x) be a property provable about objects x of type T. Then Φ(y) should be true for objects y of type S where S is a subtype of T. Barbara Liskov Sounds so confusing… But really it is not so complicated, just lets first redefine it like this: Objects of a superclass shall be replaceable with objects of its subclasses without breaking the application. That requires the objects of your subclasses to behave…

Continue Reading

Linux

How to check memory (RAM) usage in Linux?

Once we face some memory issues in linux server, usually first of all check disk space. It might be the case that some applications stuffed it with log files or some other content. Here are few instructions how to do that – How to identify which files take most of the disk space in Linux?. However disk space might be totally…

Continue Reading

Design Principles and Patterns

O in SOLID – Open/Closed Principle. Short explanation with example.

Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification Bertrand Meyer This statement was introduced by Bertrand Meyer in 1988. And it basically means that: A class is treated as open if it is available for extension. I.e. possible to extend by adding extra attributes or methods. A class is treated as closed, if…

Continue Reading

Design Principles and Patterns

SOLID Software Design Principles. Summary.

SOLID – an acronym, which stands for 5 components: Single Responsibility Principle. A class should have only one task (responsibility), which it takes care of. Open/Closed Principle. It should be possible to extend class functionality without modifying it. Liskov Substitution Principle. Base classes should be substitutable by their derived classes. Interface Segregation Principle. Client specific interface is better than one…

Continue Reading

Database

ORA-01555: snapshot too old: rollback segment number 91 with name “…” too small. What can be the cause?

Problem Get ORA-01555 exception during normal regular DB operations: ORA-01555: snapshot too old: rollback segment number 91 with name “_SYSSMU91_408937485$” too small Cause One of common causes could be that your UNDO tablespace is too small to serve for running DML operations. Whenever you start a DML operation, database has to save current state of related rowset for whatever time…

Continue Reading

ADF Exceptions

Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer). What can be the cause?

Problem Get following error message when trying to deploy ADF application to Weblogic application server: Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer) Cause It is a vrey generic error and many reasons for it can exist behind. Here are some of them: Weblogic server is experiencing memory issues. You can double check that by trying to execute any administration task through console. If…

Continue Reading

ADF Exceptions

oracle.jbo.expr.JIEvalException: JBO-25077: Name SearchValue not found in the given object: {}. What can be the cause?

Problem Just after adding a groofy expression as a default value for view object bind variable, I get this exception: oracle.jbo.expr.JIEvalException: JBO-25077: Name SearchValue not found in the given object: {} This exception was preceded by lower severity messages like: JBO-25186: Exception in expression “SearchTargetYearVar” of unknown type : groovy.lang.MissingPropertyException : No such property: viewObject for class: oracle.jbo.common.VariableImpl$VariableExprValueSupplier JBO-25186 [adf][oracle.jbo.script.ExprScriptException]…

Continue Reading

Database

How to shrink Oracle database “undo” tablespace data file?

Sometimes it happens that we accidentally or unconsciously run very big DML transactions in database. Especially in ones, which dedicated for development purposes. As change history must be saved somewhere to enable a rollback of transaction, memory is necessary for that. And this is purpose which undo tablespace is serving for in Oracle database. And after some huge transactions it…

Continue Reading

Database

How to drop corrupted “undo” tablespace segment of Oracle database?

Once it happened that “undo” tablespace segments got corrupted for some reason, here you’ll find a way to get rid of them. Corrupted tablespace segment status is indicated as NEEDS RECOVERY. Check how many of them you have: Steps to drop corrupted segments: Gather all segment names together and write them into system parameter _OFFLINE_ROLLBACK_SEGMENTS. Here is a statement which generates…

Continue Reading