Macrotone Blogs

Macrotone blogs upon Joomla, our products and other matters.

MariaDB and Joomla ?

MariaDBWe were looking at the possibilities of upgrading the version of MySQL we are using on out NAS system and were reminded of the existence of the MariaDB database as a possible alternative. Alternative because our NAS does not easily permit the upgrade of the MYSQL part of the system mainly because it is so tightly tied into the other features.

What is MariaDB one might ask. Well there is probably no better explanation that that upon the MariaDB web site.

Continue reading

MySQL and JSON data structures

mysqlHaving been working with JSON data structures recently our thoughts turned to how this could reasonably be handled by SQL queries in the production of items such as reports etc.  Leaving aside the question of how one would ‘know’ and handle the various constituents in the specific JSON object on a generic basis, we looked specifically at what was currently available.

Coming from a strong Oracle background we were familiar with the use of Java within the Oracle database and indeed have made use of it ourselves in the past, but our specific interest this time was MySQL and its use by Joomla, and we were not aware of any feature implementing Java with the MySQL database.

Continue reading

Oracle–Flashback Query

oracleWay back in 2001 Oracle announced Oracle9i with a new feature named ‘Flashback Query’. The implication was that Flashback technology would permit one to query past data, no matter how old it was days, weeks or even months old. In fact the actuality was very different since Flashback Query relied upon the undo information contained within the database Undo-Segments.

Later releases refined what was possible. It was named ‘Total Recall’ in Oracle 11g, and now goes by the name of ‘Flashback Data Archive’.  This recent blog goes into a little detail of the recent changes available in Oracle release 12c.

It is an easy read, but at the back of the mind one can’t help but think how much disk storage is required on a busy site to enable one to search back over long periods of time. The feature is useful, and is available ‘free-of-charge’ with all versions of Oracle 12c,  but at what cost in terms of system resources and performance?

Problems installing a Joomla component

joomlaWe met a very strange problem when we had to re-install a third party Joomla component.  We will not go into the details of why we had to do a fresh re-install, sufficient to say it was to try and fix an ‘opportunity for improvement’.  We couldn’t uninstall using the standard Joomla mechanism because we wanted to retain all the underlying database tables used by the component so did a manual uninstall instead.

The component was quite large but we extracted all the files and placed them in the tmp directory, so it was easy to reinstall until we determined the cause of the problem.  [We encountered a few MySQL Error 2006 – DB Server has gone away’ messages, but apart from being annoying were not really causing a problem.]

The component ‘spun’ its icon and then presented us with the following messages:

"Component Install: DB function reports no errors"
"Error installing component"

In addition an entry was make in the #__extensions table but no files are ever installed.  It is impossible to remove it via the Joomla ‘Manage’ feature and all one can do is remove the entries from the table via phpadmin (or similar).

Attempts to re-install again, are repeatable and every time a new entry was inserted into #__extensions.  If one tried several times, several rows were created.

Then we found this problem report, which had all the symptoms we were seeing.  It was raised against Joomla 1.6 but was still very useful. The clue was the mention of the #__assets table and sure enough we found a single line entry in the #__assets table which we could then remove and the next attempt to reinstall worked perfectly.

Changing Joomla MySQL database connection details

mysqlWe recently had cause to have to modify the connection details that a Test Joomla setup was using to connect to the underlying database.  The reason was that we wanted to test out a component installation where some specific database privileges had not been granted.

In out case we were interested in the database privileges ‘CREATE VIEW’, ‘CREATE ROUTINE’ and ‘TRIGGER’. Since our component would make use of database triggers, procedures and views we needed to test out an installation on a system where such grants were not present.

Our systems had the required privileges granted and we knew that editing the ‘configuration.php’ file in the existing Joomla installation should enable us to achieve this easily, but despite our attempts this wouldn’t work and instead gave us an error: ‘Database connection error (3): Could not connect to database ‘.

We played with the username and password settings in the ‘configuration.php’ file without any success it just wouldn’t connect and we knew that we had another database set up with the same username and password.

Then we remembered that we had only granted permissions for this ‘restricted’ database account to a specific database.  All we had to do was ensure that the correct grants were made for our 'second database’.

   1:  CREATE USER 'test'@'localhost' IDENTIFIED BY 'password';           -- Not required if the user already exists.
   2:  GRANT SELECT, INSERT, UPDATE, DELETE ON DBX.* TO 'test'@'localhost';
   3:  CREATE USER 'test'@'%' IDENTIFIED BY 'password';                    -- Not required if the user already exists.
   4:  GRANT SELECT, INSERT, UPDATE, DELETE ON DBX.* TO 'test'@'%';
   5:   
   6:  GRANT LOCK TABLES, CREATE TEMPORARY TABLES, CREATE, DROP, INDEX, ALTER ON DBX.* TO 'test'@'localhost';
   7:  GRANT LOCK TABLES, CREATE TEMPORARY TABLES, CREATE, DROP, INDEX, ALTER ON DBX.* TO 'test'@'%';

 

Where test is the name of your connection user, password is whatever your desired password is, and DBX is the name of your MySQL database.  Obviously if your database is not on your localhost you need to modify it for the appropriate host name or IP address, which ever is most apt.

Once we had done this it all worked perfectly and our testing could commence.

A new Audit tool for Joomla

auditAbout a week ago we released a new component for Joomla named JAudit.

Running upon Joomla 2.5 and Joomla 3.x this is a comprehensive auditing component that makes use of the underlying database to log changes made to the Joomla tables. It does not require any changes to Joomla core code and should work without impacting any Joomla functionality. The component requires that the system has been granted the appropriate database privilege to create database triggers.

We have long believed that if you are using a fully featured database upon your Joomla site it seems ‘silly’ to not make use of the features that the database provides.  Databases these days are very feature rich and it is only necessary to look at the possibilities of these features to realise just how much one is missing out upon. One analogy that brings this home, might be ‘Would you pay for a Ferrari and only drive it around in first gear?’

Continue reading

Joomla date/time displays and Database vales.

b2ap3 icon joomlaHave been looking at an interesting problem of the display of date/time values on Joomla screens.

First it is apparent from looking at the database stored values that Joomla stores all of the date/time values (calendar) in the database as UTC values, which means that all of the stored values are consistent.

However when these are displayed upon a form or in a tabular form, care has to be taken that the format of the values is consistent.  For example if the displayed value is shown as a ‘text’ field, the values stored in the database (UTC) is displayed, which is not necessarily the ‘local’ time.  We are in the London area and currently are using DST (Daylight saving time) which is an hour ahead of UTC (GMT – Greenwich Mean Time) .  One has to make consistent use of the ‘calendar’ type and if necessary make it read-only, thus ensuring the correct value, suitably converted is displayed.

Another complication that we have not yet worked out the cause of is that if using JForm with the calendar type and using the default of ‘NOW’ which should display the local time (according to the documentation),  it displays a time value 8 hours ahead of the local time.  Where is gets that from I am not sure.  i.e.  If local time is 11:30m, the ‘now’ value as determined by the JForm default shows as 19:30.  Go figure!  It was necessary therefore for us to specify the default value as empty and assign a default value in the view based upon the local time so that the form value is correct.

We have therefore decided that to avoid confusion all date/time values should be displayed using local time.

Oracle Database 12c (12.1.0.1.0) released for Windows 64bit

oracleWe note that Oracle has now released the latest version of its database for Windows 64bit to go with the earlier released Solaris (Sparc and x86-64)  and Linux platform versions. Interested readers can obtain a copy from Oracle via its Technet site.

The official release docs follow:

Oracle Database 12c, the latest generation of the world’s most popular database, has been developed for the Cloud and will enable customers to make more efficient use of their IT resources while continuing to improve their users’ service levels. In addition to a raft of enhancements and new features, including a new architecture, Oracle Database 12c makes it easier for customers to take advantage of the Cloud through:

bullet  Consolidating multiple databases with Oracle Multitenant

bullet  Automatically optimizing data storage and compression according to usage patterns

bullet  Providing continuous access with Oracle’s Maximum Availability Architecture

bullet  Securing enterprise data with comprehensive defense-in-depth strategy

bullet  Simplifying in-database analysis of Big Data

bullet  Efficient database management using Enterprise Manager Cloud Control

Free Toad for Oracle 12.0.0.61 released

Toad World - Connected IntelligenceWe are pleased to note the release of Toad for Oracle 12c is available on the Toadworld site. This is hot after the official Oracle release itself.

We have used the tool for more years than we care to remember, and it is highly recommended. They are invaluable for good database development and support.

Oracle Database 12c (12.1.0.1.0) released for Solaris and Linux

oracleWe note that Oracle has released the latest version of its database for Solaris (Sparc and x86-64)  and Linux platforms. The release for Windows is not yet available. Interested readers can obtain a copy from Oracle via its Technet site.

The official release docs follow:

Oracle Database 12c, the latest generation of the world’s most popular database, has been developed for the Cloud and will enable customers to make more efficient use of their IT resources while continuing to improve their users’ service levels. In addition to a raft of enhancements and new features, including a new architecture, Oracle Database 12c makes it easier for customers to take advantage of the Cloud through:

bullet  Consolidating multiple databases with Oracle Multitenant

bullet  Automatically optimizing data storage and compression according to usage patterns

bullet  Providing continuous access with Oracle’s Maximum Availability Architecture

bullet  Securing enterprise data with comprehensive defense-in-depth strategy

bullet  Simplifying in-database analysis of Big Data

bullet  Efficient database management using Enterprise Manager Cloud Control

Go To Top

Joomla! Debug Console

Session

Profile Information

Memory Usage

Database Queries