MySQL Plugin for Oracle Enterprise Manager 12c Cloud Control

This is the home page for MySQL Plugin for Oracle Enterprise Manager 12c Cloud Control.

If you are looking for the plugin to older versions (10g and 11g Grid Control) — you can find it here.

The plug-in extends monitoring capabilities of Oracle EM so that DBAs with heterogeneous environments can monitor MySQL systems using the same tool they use for Oracle products such as Oracle Databases and Application Servers.

With this plug-in, a DBA can add a new MySQL target just as they can an Oracle database. Oracle Enterprise Manager Agent doesn’t have to be running on the same host as the monitored MySQL database. I.e., remote monitoring of the MySQL database with an agent running on another service is possible. This is very important as many administrators prefer to keep MySQL server software stack at bare minimum whereas Oracle Agent is often considered somewhat heavy and bulky to install.

MySQL targets behave in the same way as any other Grid Control targets, including availability monitoring, performance metrics collections, configuration management, incident management, and reports. The plugin also has unique user interface that will be further expanded soon.

Plugin versions:

Version Notes
12.1.0.1.2
20-Oct-2012
  • Bug fix: plugin deployment on non-Linux environment fails.
  • Bug fix: changing metric monitoring threshold and applying templates fails.
12.1.0.1.0
29-Aug-2012
  • This is the first public version. While there was a private beta available with few dozens users reported successful deployments, it’s likely that it still has some rough edges especially when it comes to the home page UI. Please report issues you see.
  • Migration from the plugin version 1.1.2 for 10g/11g Grid Control done.
  • Version naming is now consistent with Oracle’s new guidelines for EM 12c.
  • Added slave configuration collection (from show slave status). Default collection interval is every 3 hours as opposed to general configuration that’s collected every 24 hours.
  • Added slave monitoring using information provided by show slave status.
  • Reports are not available in the Reports tab anymore — this feature was removed from EM 12c.
  • Home page includes the first basic MySQL instance dashboard. It’s implemented using metadata UI option of EM 12c.
  • This version tested only with MySQL 5.5 but should work for 5.1, 5.0 and 4.1. Please report your success or issues.

Licensing and Support

This plugin is provided by Pythian for free. Community support is the best effort and you can post your issues in the comment in the blog comments in the posts announcing each plugin version. Commercial support services are available. Customers are responsible for all other licensing of Oracle Enterprise Manager components. You can always engage Pythian professional services to assist with Oracle EM12c deployment planning and/or implementation.

Requirements

 
The plugin requires to have Oracle EM 12c environment installed and 12c Management agents. Plugin version 12.1.0.1.0 works with all public 12c releases and was tested and developed on Oracle EM 12.1.0.1.0 version. Your EM repository database and OMS can run on any platform.

 

Oracle Agent 12.1.0.1.0 on Linux was tested with plugin version 12.1.0.1.0 but it should run on any other platform.

MySQL instance can run either locally on the same servers that hosts the agent or on any other remote server. The plugin should work with any OS hosting MySQL. Plugin version 12.1.0.1.0 was tested with MySQL 5.5 but older versions down to 4.1 should work.

Download

 
Plugin is distributed as .opar file — Oracle Plugin Archive. Download it here.

Installation Guide

 
Section 13.5 Importing and Deploying the Plug-in Archive of Extensibility Programmer’s Reference is the official guide on deploying the plugins. I will update this section when I get a bit more time to dedicate on it.

 

When you are adding targets, you will need to specify MySQL Instance target properties:

  • Unix socket (optional) — the path to Unix socket file to monitor local MySQL; socket is only used when Hostname is not defined; default — /tmp/mysql.sock
  • Hostname (optional) — the IP address or hostname to connect to the MySQL database; Unix socket is used if this property is left empty
  • Port (optional) — MySQL’s port for connection if it’s not the default (3306)
  • MySQL Username (optional) — the MySQL database user; default — OS user running an Agent
  • Password (optional) — the MySQL database user password; default — no password is used

MySQL user and/or password can be left empty, depending on your security setup, but I strongly suggest you use them. I suggest to create a dedicated MySQL user. All it needs to do is to be able to connect and run these statements:

show global status;
show processlist;
show global variables;
show slave status;

That basically means PROCESS and REPLICATION CLIENT privileges. The latter is required to monitor slave status and configuration. If you don’t want to grant that privilege then you should disable metric collection for “Slave Status” and “Slave Configuration” (the latter is on the second tab in metrics settings screen).

GRANT PROCESS, REPLICATION CLIENT ON *.* TO {username};

Note that username in MySQL consists of username and client host info. The latter defines client server(s) that this user name used to login from. For example, agent@192.168.1.1 or agent@localhost. You can also use % mask to connect from any hosts as this used but it makes your security model weaker — agent@'%'.

159 Responses to “MySQL Plugin for Oracle Enterprise Manager 12c Cloud Control”

  • Fantastic Job Alex! You and Pythian should be commended for your contribution to the EM community.

  • Brian Pardy says:

    This is great! Worked seamlessly on EM12c+BP1 on SUSE11 x86-64 to monitor MySQL 5.5.21 master/slave (also SUSE11 x86-64). Thank you very much!

    How would you like any comments or issues reported?

  • Steeve Bisson says:

    Nice Plugin. Works great. Just a side note if someone has the same issue than me.
    I had the following error running emcli:
    $ emcli sync
    Error: Session expired. Run emcli login to establish a session.

    I ran the following to make it work:
    $ emcli login -username=SYSMAN
    Enter password :

    Login successful
    $ emcli sync
    Synchronized successfully

    Regards,

    Steeve

  • Ram Prasad Puppala says:

    Hi

    As per above “Plugin is distributed as .opar file”, but I am not able to find a link where I can download file with .opar extension.

    I have downloaded below file but couldnt find and file ending with .opar
    12.1.0.1.0_pythian.mysql.prod_2000_0.zip

    Can someone help with download/ install.

    Thanks,
    Ram.

    • Ram, the file you are downloading is 12.1.0.1.0_pythian.mysql.prod_2000_0.opar. Not sure why your downloaded file extension is .zip. Perhaps your browser? Just try renaming to .opar and see if that works.

  • Ram Prasad Puppala says:

    Hi Alex,

    You were right, IE-8 is downloading as zip file, tried with Firefox and it works fine.
    Thanks for help.

    Ram.

  • Alicia Guayaquil says:

    hello i’m having problem with the plugin deploy on Solarisx86-64
    do you know any restriction with this OS ??? ..thanks in advance

    This is the error message:

    pythian.mysql.prod:12.1.0.1.0:0 is not certified for Operating System Oracle Solaris

    • Alicia, that should be a warning only. I put only Linux as certified so far as that’s what I tested but it should work just fine on Solaris.

      Is that during deployment on OMS running on Solaris or on an Agent sunning on Solaris? Is that Solaris SPARC or x86?

  • Remco says:

    Alex,

    Thanks for the plugin, could you tell me if the plugin is compatible with Oracle EM 12.1.0.2.

    Thanks,
    Remco

  • Bill says:

    We got a pre-requisite Error when deploying it.

    “Plug-in NOT certified with Solaris 10 64Bit.”

    Can some verify it ?

    • Bill, I thought it will be giving just warning. Can you ignore it and proceed anyway? If not then I can re-package it removing certification bits. I didn’t add it as certified because I couldn’t test it but I set compatibility to generic platform so that you can still deploy it (and it’s platform agnostic — should just work).

      • Bill says:

        Alex,
        The Installer wouldn’t allow to proceed. Unfortunately I can’t ignore and continue (I would had done that)

        Can you release a version of the plug-in WITHOUT certification bits ?

        For those of us using Solaris, call it
        12.1.0.1.0_pythian.mysql.sol64
        .opar.

        Thank you

  • Peter says:

    Hello!

    It’s not installable under Sol10/x86-64. There’s no way to circumvent it. The GUI just allows me to go “Back” or “Cancel”.

    With regards,

    Peter.

  • @Peter, @Bill:

    Hold on – releasing an update to fix that. A bit delayed since my development environment requires update of hypervisor so takes a bit more time.

  • Bob Sacca says:

    Love the plugin….but getting an issue:
    We are alter a threshold. Everything looks fine until you try to save the changes.
    When you do you get an error message saying to check the log.
    Any ideas?
    Bob

    Here is the corresponding log entry:
    DumpSql10_SystemError=SELECT TO_CHAR(occur_date,’DD-MON-YYYY HH24:MI:SS’)occur_date, error_code, error_msg FROM mgmt_system_error_log WHERE module_name IN (‘EM.MNTR.UI’,’MGMT_MONITORING’) AND log_level = ‘ERROR’ AND occur_date > (SYSDATE – (1/24/60)*10) ORDER BY occur_date DESC
    2012-10-18 14:46:02,373 [EMUI_14_46_01_/console/metrics/target/metricThresholds] ERROR target.MonitoringSettingsController logp.251 – [EM-02903] Modification of Target Monitoring Settings has Failed
    oracle.sysman.emSDK.emd.comm.SetCollectionException: Invalid CollectionItem (mysql_slave_statistics). invalid metric

  • Bob, yes there was a bug and I will be releasing a fixed version along with Solaris support. I think this weekend.

  • I send the fixed version to those who reported an issue on Solaris platform as well as metric threshold change. As soon as I get few confirmations that it works fine, will post the new version.

  • Bob Sacca says:

    Hi Alex,
    Sorry about the email mixup.
    Yes…please send me the fix.
    Thanks,
    Bob

  • Rob says:

    Alex – great job! This is a huge improvement over the 11g plugin. Is there any way to change the size (or the layout, in general) of the “Executions per second” window on a MySQL target in GC? It’s currently too small to read.

  • Peter says:

    Hello!

    Just installed, deployed and configured the new plugin under a Solaris 10/x86 OMS/CC12c for a Win64 Agent/MySQL and it works.

    THX!

    With regards,

    Peter.

  • oliver says:

    would it be possible to get the new 12c plug in fix for solaris? I’m having an issue with deploying it to the management server.

    thanks!

    • @oliver: I didn’t get 100% confirmation from the folks I sent the plugin to. Sending that to you now. Please confirm it works for you so that I can publish the fixed version.

      • oliver says:

        Alex:

        sorry didn’t get the mysql plug in fix. checked my junk folder in case it got redirected. If you get a chance, can you resend?

        thanks!

        oliver

      • oliver says:

        thanks. I was able to deploy on managment server and agent.

        this is a newbie question and apologies in advance: on the setup, where you are inputting the mysql instance properties is that done when pushing out the target or is that be done when adding a database. I’m not able to see the mysql database on the database discovery. I believe i’ve set up the correct user and rights.

        thanks.

        • Great to hear oliver. I will be posting the plugin shortly then.
          Unfortunately, auto-discovery is not implemented and with remote monitoring (for MySQL targets that are not on the same host as as the agent) will require manual addition of the targets.

          Deployment to the agents copies everything that’s needed to the agents including files and metadata so the agents know about the new target type. Adding a target of that target type is defining properties of each target to manage/monitor. You can have multiple targets monitored from the same agent.

  • Kannan says:

    Installed and configured Mysql target with oem12c. But it showing metric collection error.

    Errors are:
    A severe error has occurred. Unable to establish a connection to the Management Server.

    Error during operation: Unexpected Error
    An unexpected error has occurred while processing the page or dialog “MetaDataPageActivityDef[homePg]“. The user interface item “mpDefault0…BarChart228″ has reported the error: faultCode:DataServiceErr faultString:’An error occurred calling the metric data service.’ faultDetail:’MetricDataService:getRealtimeData:Error getting metric data from agent for daisyrepository:mysql: oracle.sysman.emSDK.emd.comm.MetricGetException: em_error=#28000Access denied for user ‘root’@’slcibah.us.oracle.com’ (using password: YES) at /ozg/app/oracle/product/agent12c/core/12.1.0.1.0/../../plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.0/scripts/emx/mysql/mysql_oem.pm line 45′

    Error during operation: BatchService.submitBatchRequest
    Error #1009

    • Kannan: the issues seems to be obvious – you didn’t create the right password:

      #28000Access denied for user ‘root’@’slcibah.us.oracle.com’ (using password: YES)

      Note that in MySQL login id consists of username and client machine or IP. so you create not just user root but ‘root’@’slcibah.us.oracle.com’. Your MySQL DBA should be able to help you out. I recommend you use a user with more limited privileges for monitoring.

      GRANT PROCESS, REPLICATION CLIENT ON 'em'@'slcibah.us.oracle.com' TO {username} IDENTIFIED BY '{pwd}';

      You can then use username em (the source client server is added automatically for you).

  • Alan Ledrowski says:

    Love the plugin so far. Would enjoy testing the beta version as well.

    Thank You,
    Alan

  • Rob says:

    I’m unable to apply a monitoring template to MySQL targets. I opened an SR with Oracle, and they advised me to contact Pythian. When I apply a monitoring template, the settings in the template are not applied to the target, and a rather lengthy entry lands in emoms.trc, including “2012-11-28 09:56:57,569 [RemoteJobWorker 789032] ERROR template.PropagateMetricsData logp.251 – [EM-02902] Execution of Apply Template Operation has Failed.” Have you encountered this when applying a template?

  • Rob says:

    Alex (or anyone) – any info on applying a monitoring template? Monitoring templates are crucial for managing more than a handful of targets. Has anyone gotten this to work? If so, please share what you did. Thanks!

  • Bob says:

    How do I do the following, as I want to Add a Target (MYSQL database) on a server which does NOT currently have an Oracle Agent running on it (does it need an Oracle Agent on it ?).

    Oracle Enterprise Manager Agent doesn’t have to be running on the same host as the monitored MySQL database. I.e., remote monitoring of the MySQL database with an agent running on another service is possible. This is very important as many administrators prefer to keep MySQL server software stack at bare minimum whereas Oracle Agent is often considered somewhat heavy and bulky to install.

  • Rob says:

    Bob – you simply deploy the plugin to an agent anywhere, and that agent connects to your MySQL instance over the network. Agent does not need to be on the same host as the MySQL instance, but it must be able to login to the MySQL instance (i.e, over port 3306).

    In Grid, when you go to add a MySQL target, you specify the monitoring agent first, then add the MySQL hostname and credentials.

  • Rob says:

    Here’s the relevant portion of emoms.trc resulting from the failed template application I described above:

    2012-12-07 08:55:29,840 [RemoteJobWorker 841156] WARN em.jobs populateDiagnosticDumps.3669 – Apply Template Operation Failed : Collecting Repository Table Dumps using Sqls:
    DumpSql_1_Info=SELECT template_copy_guid, template_guid, target_guid, copy_req_guid, copy_type, TO_CHAR(created_date,’DD-MON-YYYY HH24:MI:SS’) created, Created_by, disable_alerts, gen_failure_event FROM mgmt_template_copies WHERE copy_req_guid= ‘CFB9AB88488F1E9AE04344CFAD953203′
    DumpSql2_Collections=SELECT c.object_guid, c.coll_name, c.is_enabled enb, c.object_type, c.schedule_ex, c.store_metric sto, c.upload_frequency upf, c.frequency_code frq, TO_CHAR(c.start_time,’DD-MON-YYYY HH24:MI:SS’) start_time, TO_CHAR(c.end_time,’DD-MON-YYYY HH24:MI:SS’) end_time, c.execution_hours exh, c.execution_minutes exm, c.interval int, c.months, c.days FROM mgmt_collections c WHERE c.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) AND c.object_type IN (2, 4) ORDER BY c.object_guid, c.coll_name
    DumpSql3_CollectionMetrics=SELECT DISTINCT c.object_guid, c.coll_name, m.metric_guid, m.metric_name, m.metric_column, c.object_type FROM mgmt_collections c, mgmt_collection_metric_tasks cmt, mgmt_metrics m WHERE c.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) AND c.object_type IN (2, 4) AND c.object_guid = cmt.target_guid AND c.coll_name = cmt.coll_name AND m.metric_guid = cmt.metric_guid ORDER BY c.object_guid, c.coll_name, m.metric_name, m.metric_column
    DumpSql4_CollectionProperties=SELECT c.object_guid, c.coll_name, p.metric_guid, p.property_name, p.property_value , c.object_type FROM mgmt_collections c, mgmt_coll_item_properties p WHERE c.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) AND c.object_type IN (2, 4) AND c.object_guid = p.object_guid AND c.coll_name = p.coll_name ORDER BY c.object_guid, c.coll_name, p.metric_guid, p.property_name
    DumpSql5_MetricAssociation=SELECT a.object_guid, p.policy_name, p.policy_type, a.coll_name, a.is_enabled, a.object_type FROM mgmt_policies p, mgmt_policy_assoc a WHERE a.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) and a.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) AND a.policy_guid = p.policy_guid and a.object_type IN (2, 4) and p.policy_type = 1 ORDER BY a.object_guid, p.policy_name, a.coll_name
    DumpSql6_MetricCompositeKeys=SELECT m.object_guid, m.composite_key, m.key_part1_value, m.key_part2_value, m.key_part3_value, m.key_part4_value, m.key_part5_value, m.key_part6_value, m.key_part7_value FROM em_composite_keys m WHERE m.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) ORDER BY m.object_guid, m.composite_key
    DumpSql7_MetricAssociationConfig=SELECT a.object_guid, p.policy_name, a.coll_name, a.key_value, a.key_operator oper, a.eval_order ord, a.is_exception excp, a.has_active_baseline bsl, a.prevent_override tov, a.importance imp, a.num_occurrences occ, a.is_push psh, a.simultaneous_actions sa, a.fixit_job FROM mgmt_policies p, mgmt_policy_assoc_cfg a WHERE a.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) AND p.policy_type = 1 AND a.policy_guid = p.policy_guid ORDER BY a.object_guid, p.policy_name, a.coll_name, a.eval_order
    DumpSql8_MetricCorrectiveActions=SELECT a.object_guid, p.policy_name, a.coll_name, a.key_value, a.key_operator oper, c_ca.job_name crit_ca, w_ca.job_name warn_ca, i_ca.job_name info_ca FROM mgmt_policies p, mgmt_policy_assoc_cfg a, (SELECT job_id, job_name, job_owner FROM mgmt_job WHERE is_corrective_action = 1) c_ca, (SELECT job_id, job_name, job_owner FROM mgmt_job j WHERE is_corrective_action = 1) w_ca, (SELECT job_id, job_name, job_owner FROM mgmt_job WHERE is_corrective_action = 1) i_ca WHERE a.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) AND p.policy_type = 1 AND a.policy_guid = p.policy_guid AND a.crit_action_job_id = c_ca.job_id (+) AND a.warn_action_job_id = w_ca.job_id (+) AND a.info_action_job_id = i_ca.job_id (+) AND ( a.crit_action_job_id IS NOT NULL OR a.warn_action_job_id IS NOT NULL OR a.info_action_job_id IS NOT NULL ) ORDER BY a.object_guid, p.policy_name, a.coll_name, a.eval_order
    DumpSql9_MetricAssociationParameters=SELECT ac.object_guid, p.policy_name, ap.coll_name, ap.key_value, ap.key_operator oper, ap.crit_threshold, ap.warn_threshold, ap.info_threshold FROM mgmt_policies p, mgmt_policy_assoc_cfg ac, mgmt_policy_assoc_cfg_params ap WHERE ac.object_guid IN ( ’6855C1E86F8F1E7567D2727F3EA9F07E’, ’32DB794D589D6F31F8A0811C74F83915′, ’19D316FBA6D4D5BEE4CB317F794ACB52′ ) AND p.policy_type = 1 AND ac.policy_guid = p.policy_guid AND ap.object_guid = ac.object_guid AND ap.policy_guid = ac.policy_guid AND ap.coll_name = ac.coll_name AND ap.key_value = ac.key_value AND ap.key_operator = ac.key_operator ORDER BY ac.object_guid, p.policy_name, ap.coll_name, ac.eval_order, ap.param_name
    DumpSql10_SystemError=SELECT TO_CHAR(occur_date,’DD-MON-YYYY HH24:MI:SS’)occur_date, error_code, error_msg FROM mgmt_system_error_log WHERE module_name IN (‘EM_TEMPLATE’,’MGMT_TEMPLATE’) AND log_level = ‘ERROR’ AND occur_date > (SYSDATE – (1/24/60)*10) ORDER BY occur_date DESC
    2012-12-07 08:55:29,844 [RemoteJobWorker 841156] ERROR template.PropagateMetricsData logp.251 – [EM-02902] Execution of Apply Template Operation has Failed
    oracle.sysman.emSDK.emd.comm.SetCollectionException: mysql_slave_statistics

    Does this mean anything to anyone?

  • Rob says:

    Problem also occurs if I just try to edit the metrics for a target. After editing metrics and clicking OK, the console says “Internal Error has occurred. Check the log file for details.” emoms.trc contains:

    2012-12-07 09:57:56,639 [EMUI_09_57_55_/console/metrics/target/metricThresholds] ERROR target.MonitoringSettingsController logp.251 – [EM-02903] Modification of Target Monitoring Settings has Failed
    oracle.sysman.emSDK.emd.comm.SetCollectionException: Invalid CollectionItem (mysql_slave_statistics). invalid metric

    This is similar to the error Bob Sacca reported on Oct 19. Can you send me your fixed version? I can test it and let you know if it fixes this (and the earlier) problem.

  • SteveO says:

    Great plugin! The hardest part about the install was wading thru the Oracle docs. :-) After that everything went well. I added 12 target instances from our development environment. It was a snap!

    I’m curious as to the features and futures…

    1) Configureability:
    I can’t find a way to configure what’s displayed in the “Executions per Second” box in the UI. There are so many metrics in the box that the text is too small to read. I can’t imagine needing to monitor the number of drop database commands executed per second so I’d like to remove that from the list along with several others. I went to the server “All Metrics” page where I can see each metric but I can’t find configuration functions. Is any of this configurable? I looked at the XML and stuff in my middleware/plugins/pythian* directory but got lost in the verbiage. Is there any documentation for this? Anything to help me get up to speed with how everything is configured? Thanks.

    2) As wonderful as this plugin is I’m wondering if there’s a publishable roadmap for future enhancements. Any plans for future development? I’m not expecting plugin features equivalent features to the Oracle DB functionality but I’d like to know if there are any plans in the works.

    I’m very appreciative for what is already available in this plugin. Keep up the great work!

    • Thanks for the feedback SteveO.
      I think the best would be to create your own report (see few reports out of the box to give you an idea). EM12c documentation has info on how to develop your own reports.
      Plugin documentation is in Extensibility section but that would really only apply if you are developing your own plugin.

      Can you upload the screenshot somewhere to show me how badly it’s displayed?

      As a solution, I would try to implement a drop down that will let you switch between full details versus grouped settings. Can you tell me what grouping rule you would want to see? If you are more specific, it would make it easier for me.

      I don’t have the roadmap simple because I haven’t really been able to consistently invest efforts into the development. The good news is that seems to be changing. :)

      • SteveO says:

        Hi Alex,

        With instructions I could upload a screenshot but suffice it to say that the png screenshot on your website only shows 18 data points and my default install displays 48 data points. (The diminutive text issue also mentioned above by Rob on 10/22.) I’d like to be able to pick and choose which data points to display but if I just had what’s shown on your website that would be workable.

        At some point I will probably need to get into the EDK but if I just knew which XML file to tweak to pick the data points that would be great. In the meantime I’m still in the process of discovery to determine which metrics are most meaningful for us.

        Thanks again!!

        • I *might* be able to make it configurable but it’s not easy to make it universal. If you can go through the hassle sorting all of them in the buckets (like have some like inserts, selects, deletes and etc in each on their own but group the rest in to one Other or few relevant buckets). If you can help me with that, I can quickly come up with a drop down to do that.

          • SteveO says:

            Okay, good idea. (But I’m having trouble just reading them even though I have a large monitor :-)

            1) DML Group (most important)
            commands: select, insert, update, delete*, commit.

            2) Admin, DDL and Infrequent DML Group
            commands: create*, alter*, drop*, grant, change_db, truncate, lock table, begin, kill, etc.

            3) Replication Group
            All the commands like *slave* and *master*

            4) Show, Set Group
            All the commands like show* and set* except those like *slave* and *master*

            Many thanks!

  • Another Plugin Developer says:

    EM Cloud Control now has a chapter that covers plugin import and deployment on server and agent. You can refer to that in your doc.

    http://docs.oracle.com/cd/E24628_01/doc.121/e24473/plugin_mngr.htm#CHDBGHFE

  • Armen says:

    Hi All,
    I receive an error after importing plugin on EM12c with command emcli import_update_catalog -file=”/u02/EM12/12.1.0.1.2_pythian.mysql.prod_2000_0.opar” -omslocal
    Specified file is not a valid Self Update catalog file. Please check and try again with a valid file.
    EM12c Version 12.1.0.2.0
    Thanks.

  • Jenn says:

    Hi all,

    I was able to deploy the Plug-in (12.1.0.1.2) to the OMS and agents(12.1.0.2), but I’m receiving the following error on all of them when trying to manually add the MySQL target.

    “Target type MySQL Server is not supported on selected monitoring agent…Exception in validationPluginForAgentSideDeployment:

    The agent is RHEL 5.

    Has anyone else been able to add MySQL targets with the agent version 12.1.0.2 on Linux.

    • You should have no problems with RHEL5. Can you check for more detailed error message from OMS and Agent logs?

      • Jenn says:

        Sorry, I wasn’t clear. I don’t think the issue was related to RHEL5. I think it may be due to the fact that we are running EM Grid Control 12.1.0.2 (with the agent being the same version). We did have a version of 12.1.0.1 running previously, which did work with this plug-in. Ever since we installed the latest version, the plug in no longer works.

        Here is what I can find from the OMS log.

        2013-03-11 14:06:57,172 [[ACTIVE] ExecuteThread: ’24′ for queue: ‘weblogic.kernel.Default (self-tuning)’] WARN Util.class logp.251 – Exception:
        java.lang.NullPointerException
        at oracle.sysman.core.common.extensibility.plugin.deploymentservice.agent.EMPluginAgentDeploymentHelper.validatePluginForAgentSideDeployment(EMPluginAgentDeploymentHelper.java:666)
        at oracle.sysman.core.common.extensibility.plugin.deploymentservice.agent.EMPluginAgentDeploymentHelper.validatePluginForAgentSideDeployment(EMPluginAgentDeploymentHelper.java:545)
        at oracle.sysman.core.discovery.uimodel.Util.validatePluginOnAgent(Util.java:92)

        • Missed your comment back then Jenn. I couldn’t reproduce it so not sure what’s causing it. Did you manage to solve it?

          • Vishal says:

            I am gettng the same error message…My version is EM12.1.0.3 and agent version is same…
            I tried it on multiple agents get the same error message everytime.

  • Md. Shafiur says:

    Is this plugins compatible with the mysql version 5.0.77. I have mysql 5.0.77 and Oracle 12c Cloud Control. So could you please tell me if i could include mysql db to this cloud or not.

    • Md. Shafiur says:

      Sorry for previous post. But you need to see my this post:

      We have applied the plugins from Pythian web site and this plugins have been implemented successfully on Oracle Cloud 12c. And a database have been added for this plugins but the problem is the the database is not showing in the following process (Target-> Database->(MySQL Instance not showing)), but it is showing in the different process(Target->All Database->MySQL Instance showing).

      • Md – Thanks for the update on 5.0.77. I would expect it to work with any of 4.1-5.5 releases. Didn’t have time to verify with 5.6.

        Perhaps, EM12c console filters Oracle databases only on one of the cases.

  • Brian Pardy says:

    FYI on a minor nitpick — looks like OEM’s fault, not the MySQL plugin.

    When applying a monitoring template for a MySQL instance, the “Search and Select: Targets” screen will list your MySQL instances as being on whatever host you use to monitor them. The column is actually reporting the hostname of the agent monitoring the MySQL instance, not the hostname where the database is running. This doesn’t matter if you install an EM agent on your MySQL servers, but if you use a different agent to monitor them it may be confusing.

  • Vish says:

    Hello Alex,

    Is there a way to see the list of databases running under a sql instance in 12c console using this plugin?

    Thank You,
    Vish.

  • Vish says:

    Hello Alex,

    I’ve installed a new version of mysql (Server version: 5.6.10 MySQL Community Server (GPL)) and when I try to discover the target in 12c, it throws an error below.

    ————
    Error during operation: Unexpected Error
    An unexpected error has occurred while processing the page or dialog “MetaDataPageActivityDef[homePg]“. The user interface item “mpDefault0…BarChart228″ has reported the error: faultCode:DataServiceErr faultString:’An error occurred calling the metric data service.’ faultDetail:’MetricDataService:getRealtimeData:Error getting metric data from agent for uscalx7292_mysql:mysql: oracle.sysman.emSDK.emd.comm.MetricGetException: em_error=Timeout of authentication at /u01/app/oracle/product/us/core/12.1.0.2.0/../../plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_oem.pm line 45′
    —————–

    Looks like we are hitting a bug with this new version of mysql (5.6.10). The discovery of other version of mysql has no issues. And we do have the latest version of the plugin installed (12.1.0.2).

    Thank You,
    Vish.

    • Vish, I haven’t tested the plugin with 5.6 yet. Couple years ago, MySQL wire authentication protocol has changed and that broke the plugin so I had to fix the native Perl connectivity module.
      I’ll see if I can verify the plugin with 5.6 soon.

      • Jason says:

        Any update on this? I too am getting the same error with the same version plugin/OMS..

        Thanks!
        jdd

        • I suspect it might be due to secure_auth variable that is defaulting to enabled from 5.6.5. Can you disable it and see if it helps?

          • Jason says:

            You were spot on Alex.. I started the instance with secure-auth disabled and it works perfectly… Thanks! mysql.server start –skip-secure-auth

          • Kenneth says:

            Hi

            Old thread, I know, but I try anyway.
            I get the same error on MySQL 5.6.17 and OEM12c3. I can use connect using mysql on oem. Got another MySQL, same version, everything works fine. Tried disabling sec_auth, no luck. Any other Ideas?
            Thanks

          • Kenneth: what’s error are you getting exactly?

          • Kenneth says:

            Hi Alex

            Here’s the error message:
            An error occurred calling the metric data service. Unable to get metric commands from agent for target wikix mysql, root cause: oracle.sysman.emSDK.emd.comm.MetricGetException: em_error=Timeout of authentication at /opt/oracle/plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_oem.pm line 45
            . on UI item mpDefault0…BarChart228 on page MetaDataPageActivityDef[homePg]

            /Kenneth

          • Kenneth: I’m fairly certain this is due to secure authentication setting. Are you sure it’s disabled? I won’t have time in the next few weeks to try it on this MySQL release just to make sure.

          • Matti says:

            Solved same error by switching from tcp connection to socket connection. I had several mysqls 5.5.x, that were monitored by remote agents first. When I later on installed local agents, I forgot to give the path to the socket file for connections from localhost, leading into this em_error.

            Changing secure_auth online didn’t help anything.

  • Daniel says:

    Thank you Alex for your fantastic job.

    I have implemented successfully on the test environnment the plugin without any trouble.
    I have two critical alerts on the master server (master/slave replication 5.5.30):
    - The value of Slave_SQL_Running_flag is 0
    - The value of Slave_IO_Running_flag is 0

    Normaly this value is set to YES on the slave and not on the master.

    Is this a bug or a missconfiguration on the MySQL server?
    Thank you,
    Daniel

  • M. Ben says:

    hello,

    It seems that’s I’m the only one to have an issue with the deployment on RHEL 5.5, cloud control 12.2.0.1 ….
    I downloaded the plugin with IE and got a file named 12.1.0.1.2_pythian.mysql.prod_2000_0.man. I made the emcli import with this file without error.

    When I want to deploy the plugin through the cloud control, the window hangs on “Wait to start prerequiste check”. It does’nt crash or exit with an error, that’s why I don’t even have a log to investigate….

    I’ve also downloaded the plugin with mozilla with the correct extension and I’ve re-imported it but it’s the same problem.

    I’ve opened an oracle SR in order to know if it’s possible to delete an imported plugin.

    have someone an idea to help me please ??

    Thank you

  • Bob says:

    Hi Alex…..Does this plugin support or have any plans to support Clustered MYSql?

  • Ashok Mahajan says:

    Alex, I heard that Oracle OEM can be used to monitor only the mysql enterprise version which is licensed by Oracle, not the free community version. Is that correct information ?
    As for OEM licensing, we are already using OEM for monitoring the Oracle databases. Does the monitoring mysql databases from same OEM requires additional license fee payment to Oracle ?

  • Dan Shen says:

    Alex,

    I got below error when Importing the Plug-in Archive.
    I have downloaded install file but the file ending with .man, I just rename it to 12.1.0.1.2_pythian.mysql.prod_2000_0.opar.

    [oracle@YRZ-DB-ORACLE bin]$ ./emcli import_update -file=/u01/app/oracle/oms12cr2/mysql_plugins -omslocal
    Internal Error: error in opening zip file

    [oracle@YRZ-DB-ORACLE bin]$ find /u01/app/oracle/oms12cr2/mysql_plugins
    /u01/app/oracle/oms12cr2/mysql_plugins
    /u01/app/oracle/oms12cr2/mysql_plugins/12.1.0.1.2_pythian.mysql.prod_2000_0.opar

    Thanks,
    Dan

  • Boris says:

    Does the management agent need to be deployed from the OMS to have the plug-in code in it? Does it need to go on the target under mysql or oracle OS account? Does it matter?

    Thanks
    Boris

  • Gaurav says:

    Hello Alex Gorbachev,

    Do you know any tentative dates when OEM 12c plugin would be able to show status of SQL-Server Databases along with SQL server Instances on the OEM 12c Console ?
    How would we be able to monitor Individual SQL Server Database Instances from OEM 12c ?

    Thanks,
    Gaurav Batta

  • Gaurav,

    I do not develop SQL Server plugin. I beliebe it’s available from Oracle and I didn’t check 12c version yet but I thought that it was available. There might be other third party vendors working in this space but I can’t say much about it as I don’t know for sure.

    Alex

  • kumar says:

    can you provide full command for add target syntax with emcli? I mean with each argument. I am confused with what user should be used and what password etc.
    I have the following on target host
    oracle user home – for agent software binaries (OS)
    mysql user home – for mysql database binaries (OS)
    mysql sql user – for mysql database access (database user)

    • Kumar:
      You only need to use MySQL database user login for the target. If you are not comfortable with emcli — just use the Console.
      emcli will also require EM12c login verb before adding a target (that you are using to login in EM12c Console)

  • Jenn says:

    I was able to deploy the plug-in to the OMS and one of the agents.
    However, I’m having issues when trying to add a new MySQL target.
    In order to get more information, I tried this from a command prompt, but am still seeing errors.

    Has anyone seen this?

    emcli add_target -name=”targetname” -type=”mysql” -host=”hostname”
    java.lang.Exception: no target metadata for mysql.target_name

    One other important note, I have been able to add this same target to our Test OMS system, but I am getting the same error when trying to add this target to the Production OMS.
    Thanks,
    Jenn

  • Kumar says:

    Hi Alex,
    We would like to install this plugin for Mysql 5.6.11 EE mysql instances (running on RED Hat Linux platform) from OEM12c (Running on Redhat Linux). Please let us know if we required Enterprise License for this plugin and how can i get this license.

    • MySQL plugin doesn’t have any limitation on whether you get commercial MySQL support/license or or not. If you want commercial enterprise support for MySQL plugin — let me know. We do provide that to our clients.

  • Anya Mendenhall says:

    Hi, I was able to configure this plug-in with our OEM and added MySQL instance to it. We would like to monitor a condition whereby InnoDB does not run out of space. Which of the metrics would we use? Thank you!

  • Sharmila Jayaram says:

    I deployed the plugin and discovered a MySql instance which is of version 5.5. I see the following error when I go to the target page.

    Metric evaluation error start – oracle.sysman.emSDK.agent.fetchlet.exception.FetchletException: em_error=MySQL error #42S22Unknown column ‘alive’ in ‘field list’ at /scratch/aime1/agents/emagent_ppz1/plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_response.pl line 49.

    Also another question. What are the different metrics that are available with the MySql Plugin. I see only one which is innodb_row_locks. Is that correct ? If not, am I not seeing metrics because of the exception ? I need metrics for database performance and table space usage. Are they available, please confirm ?

  • Grant Upton says:

    Alex,

    Congrats on a useful and feature-rich plugin, but I am unable to currently use it to the full extent that I would like.

    Currently running a MySQL v5.6.11 instance and have installed your v12.1.0.1.2 plugin against a v12.1.0.1 Grid Control Instance.

    As per the previous suggestions in this forum, I have “disabled” the “secure authentication parameter” – as follows:
    secure-auth = OFF
    After configuring the connection details to my MySQL instance, I am getting the following couple of errors when trying to display the dashboard screen:

    Error during operation: Unexpected Error
    An unexpected error has occurred while processing the page or dialog “MetaDataPageActivityDef[homePg]“. The user interface item “mpDefault0…BarChart230″ has reported the error: faultCode:DataServiceErr faultString:’An error occurred calling the metric data service.’ faultDetail:’MetricDataService:getRealtimeData:Error getting metric data from agent for Toolbar Prod:mysql: oracle.sysman.emSDK.emd.comm.MetricGetException: em_error=MySQL error #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘”Com\_%”‘ at line 1 at /usr/lib/oracle/core/12.1.0.1.0/core/12.1.0.1.0/../../plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_oem.pm line 60.’

    Error during operation: Unexpected Error
    An unexpected error has occurred while processing the page or dialog “MetaDataPageActivityDef[homePg]“. The user interface item “mpDefault0…PieChart300″ has reported the error: faultCode:DataServiceErr faultString:’An error occurred calling the metric data service.’ faultDetail:’MetricDataService:getRealtimeData:Error getting metric data from agent for Toolbar Prod:mysql: oracle.sysman.emSDK.emd.comm.MetricGetException: em_error=MySQL error #42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘”Com\_%”‘ at line 1 at /usr/lib/oracle/core/12.1.0.1.0/core/12.1.0.1.0/../../plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_oem.pm line 60.’

    The other content on the Database “Dashboard” page does display successfully.

  • Ana Maria Urgiles says:

    Hi Alex, I’ve tried to download the version 12.1.0.1.0, but when I send it to my email, from this page, always sends me the 12.1.0.1.2, I though it was a new version of all, I deployed, but it seems I need the previous release to apply the patch 12.1.0.1.2, but I can’t download it from anywhere

  • Pablo Mazzei says:

    Hello,
    Will the plug-in work on OMS 12.1.0.3?
    Thanks

    Pablo

  • gary says:

    Hi Alex,
    What is the trick to using the plugin with EM12c R2 or R3? EM reports that the plugin is deployed properly:
    emcli list_plugins_on_agent -agent=hostname:3872
    The Agent URL is https://hostname:3872/emd/main/
    Plug-in Name Version
    Pythian MySQL Plugin 12.1.0.1.2

    It gives the following error when trying to add a target from the console:
    “Target type MySQL Server is not supported on selected monitoring agent hostname:3872: java.lang.NullPointerException.”

    The following error is given from the cli:
    emcli add_target -name=”db” -type=”mysql” -host=”hostname”
    java.lang.Exception: no target metadata for mysql.target_name

    Thanks
    Gary

  • Juan Pablo says:

    Nice piece of art Alex.
    I have a question…
    Does the plugin execute a sql query for a business metric? For example:

    Query:
    select count(1) as errors
    from table
    where date = TODAY

    If “errors” is greater than 0, one notification must be triggered.

    Thanks.

    • Thanks Juan. The plugin doesn’t collect application metrics.
      You can do OS command based metric extension to collect custom metric. Unfortunately, there is no way to create SQL based extension for MySQL.

  • Rammk says:

    The plugin is working fine with 12c. I am not seeing database names and sizes.
    I am seeing conformance dashboard and metrics.
    Please confirm whether it was designed for database sizes.

  • veena says:

    I have installed Pythian MYsql plugin 12.1.0.1.2 and it was successful.

    I am trying to discover the My sql database in EMCC 12.1.0.6 and I get the following error and it is not getting active status:
    I gave Mysql USER/password and Mysql Port while adding mysql instance in EM.
    The sql instance does not get to active state(shown as down) and I get the foll. error.
    Can you please let me know what the issue is?
    —————————————–
    Metric evaluation error start – oracle.sysman.emSDK.agent.fetchlet.exception.FetchletException: em_error=MySQL error #42S22Unknown column ‘alive’ in ‘field list’ at /scratch/aime2/work/agtbase2356/plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_response.pl line 49.

  • Gamer says:

    Deploy to EMCC R3 failed.

    $ ./Middleware/oms/bin/emcli deploy_plugin_on_server -plugin=pythian.mysql.prod:12.1.0.1.2
    Enter repository DB sys password:

    Performing pre-requisites check… This will take a while.
    Unexpected error occurred
    Error message is: No central agents of the management servers could be obtained for plugin deployment. The following query was used to retrieve them – “SELECT t.target_name, t.emd_url, op.host_url, op.oms_id, op.status, op.unique_oms_name, op.is_first_oms, op.oracle_home, op.server_name, t.host_name , ca.current_status FROM gc_oms_info op, mgmt_targets t , mgmt_current_availability ca WHERE op.host_name = t.host_name AND op.em_release_version = ? AND op.domain_name = ? AND t.target_type=’oracle_emd’ AND ca.target_guid = t.target_guid ORDER BY op.oms_id”
    For details, check the Management Server logs.

  • James Bennett says:

    Is there a virtual class offered to download/install/setup/configure this plugin into the OEM 12c CC..?

    • I don’t have a class. It’s actually pretty basic. I wish I had time to have like a few minutes tutorial. I’ll try to come up with it but I won’t have time in the next few days for sure.

      Let me know if you hit any specific issues though and I’ll try to help.

  • Moise says:

    Hello Alex,
    I just installed the plugin on our OEM 12c version 12.1.0.2.
    The installation worked fine.
    I deployed an agent on the server (windows server 2003 R2 sp2) where Mysql (4.0) is running.
    I declared 2 Mysql databases in OEM.
    After that, each time i’m opening the db target OEM page, a popup windows appears with the message below :
    Error during operation: Unexpected Error
    An unexpected error has occurred while processing the page or dialog “MetaDataPageActivityDef[homePg]“. The user interface item “mpDefault0…BarChart228″ has reported the error: faultCode:DataServiceErr faultString:’An error occurred calling the metric data service.’ faultDetail:’MetricDataService:getRealtimeData:Error getting metric data from agent for mysql:mysql: oracle.sysman.emSDK.emd.comm.MetricGetException: em_error=Couldn’t connect to /tmp/mysql.sock: at C:\Oracle\Agent\plugins\pythian.mysql.prod.agent.plugin_12.1.0.1.2\scripts/emx/mysql/mysql_oem.pm line 45′

    Looking in details OEM gives me the event : “Failed to connect to MySQL: Couldn’t connect to /tmp/mysql.sock: at C:\Oracle\Agent\plugins\pythian.mysql.prod.agent.plugin_12.1.0.1.2\scripts/emx/mysql/mysql_oem.pm line 45.”

    Have you got an idea on the issue ?
    I saw in the other posts some similar issues but I think it was not on Windows server.

  • hub says:

    Hi Alex,

    We are trying to monitor a mysql database on a linux server via an oracle agent (12.2.0.2) on a windows host.

    We constantly receive the following error ( pop up window) when we acces the mysql monitoring page.

    XML reader error: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte

    After confirming/closing several error prompts the home page of the mysql db is displayed and some metrics are shown.

    Did you already encouter this error?

    Regards

    • hub says:

      Correction : the agent is version 12.1.0.2

    • Do you have a more complete error stack?
      Can you check in OMS logs if there is a more complete message?

      • hub says:

        Hi alex

        These are the first entries in the oms log when acces the mysql page.

        [2014-01-29T11:09:41.592+01:00] [EMGC_OMS1] [ERROR:32] [] [oracle.sysman.emx.service.servlet.EmxMessageContext] [tid: [ACTIVE].ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’] [userId: ORACLEADM] [ecid: af40e9483c72e328:6e9eb768:14397ce7f4a:-8000-000000000017d44f,0] [APP: emgc] Unable to unmarshal input message for web service: Service[MetricDataService.getMetricData] oracle.sysman.emx.service.metricDataService.MetricDataServiceImpl.getMetricData[[
        com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte 0×20 (at char #946, byte #-1)
        at com.sun.xml.ws.streaming.XMLStreamReaderUtil.wrapException(XMLStreamReaderUtil.java:267)
        at com.sun.xml.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:95)
        at com.sun.xml.ws.streaming.XMLStreamReaderUtil.nextContent(XMLStreamReaderUtil.java:110)
        at com.sun.xml.ws.streaming.XMLStreamReaderUtil.nextElementContent(XMLStreamReaderUtil.java:100)
        at oracle.sysman.emx.service.servlet.EmxMessageContext.positionStream(EmxMessageContext.java:295)
        at oracle.sysman.emx.service.servlet.EmxMessageContext.parseMessage(EmxMessageContext.java:191)
        at oracle.sysman.emx.service.servlet.EmxMessageContext.getServiceInputParameters(EmxMessageContext.java:164)
        at oracle.sysman.emx.service.servlet.EmxServiceContext.getServiceInputParameters(EmxServiceContext.java:150)
        at oracle.sysman.emx.service.servlet.ServiceDef.invokeService(ServiceDef.java:440)
        at oracle.sysman.emx.service.batch.BatchService$InvokeServiceTask.call(BatchService.java:286)
        at oracle.sysman.emx.service.batch.BatchService$InvokeServiceTask.call(BatchService.java:248)
        at oracle.sysman.emx.service.batch.BatchService.executeTasksSequential(BatchService.java:162)
        at oracle.sysman.emx.service.batch.BatchService.submitBatchRequest(BatchService.java:136)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at oracle.j2ee.ws.server.jaxws.ServiceEndpointRuntime.processMessage(ServiceEndpointRuntime.java:370)
        at oracle.j2ee.ws.server.jaxws.ServiceEndpointRuntime.processMessage(ServiceEndpointRuntime.java:202)
        at oracle.j2ee.ws.server.jaxws.JAXWSRuntimeDelegate.processMessage(JAXWSRuntimeDelegate.java:474)
        at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
        at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1112)
        at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
        at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:233)
        at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193)
        at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:485)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:335)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:550)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adfinternal.view.faces.caching.filter.AdfFacesCachingFilter.doFilter(AdfFacesCachingFilter.java:137)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
        Caused by: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte 0×20 (at char #946, byte #-1)
        at com.ctc.wstx.sr.StreamScanner.constructFromIOE(StreamScanner.java:599)
        at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:967)
        at com.ctc.wstx.sr.StreamScanner.getNext(StreamScanner.java:727)
        at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:1957)
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1106)
        at com.sun.xml.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:76)
        … 62 more
        Caused by: java.io.CharConversionException: Invalid UTF-8 middle byte 0×20 (at char #946, byte #-1)
        at com.ctc.wstx.io.UTF8Reader.reportInvalidOther(UTF8Reader.java:314)
        at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:205)
        at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84)
        at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:55)
        at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:961)
        … 66 more

  • Martin says:

    Hy Alex
    maybe you plan to include the metric for enterprise backup monitoríng in this plugin ? :)

    martin

    • Jagan says:

      Hi Alex,
      I am currently using the 12.1.0.2 MySQL plugin with OEM Agent version 12.1.0.3 but running into an error:
      An error occurred calling the metric data service. Unable to get metric commands from agent for target CorporateAR mysql, root cause: oracle.sysman.emSDK.emd.comm.MetricGetException: em_error=Couldn’t connect to /tmp/mysql.sock: connect: No such file or directory at /agent/agent_sw/plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_oem.pm line 45
      . on UI item mpDefault0…BarChart230 on page MetaDataPageActivityDef[homePg]

      It looks like the mysql.sock file does noe exist under /tmp:
      /var/lib/mysql
      -bash-3.2$ ls -lart mysql.sock
      srwxrwxrwx 1 mysql mysql 0 Jun 7 2013 mysql.sock

      The following is the error in the OMS log:
      Caused by: oracle.sysman.gcagent.cxl.ProxyException: em_error=Couldn’t connect to /tmp/mysql.sock: connect: No such file or directory at /agent/agent_sw/plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_oem.pm line 45

      I have checked the file, /agent/agent_sw/plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/MySQL.pm and it looks like it is using the default location for the file as /tmp/mysql.sock

      Have you been able to look into the issue?

      Thanks,
      Jagan

  • Jagan says:

    Alex,
    I did go through the installation document after talking to you and realized that my mysql account was missing some permissions. I granted them and monitoring works fine now.

    Thanks,
    Jagan

  • Martin says:

    Hello Alex ,
    i have set up replikation metrics but it gerenate no alert .
    Any idea ?
    thanks
    Martin

  • Kim Thomas says:

    Hi,
    Can the OEM12c GC Mysql Plugin work with the mysql-proxy application to capture query information and display it in OEM 12c
    Thanks,
    Kim Thomas
    Cbeyond

    • Hi Kim. Interesting idea. Unfortunately, there is nothing to capture queries from MySQL proxy. Nothing that can’t be done technically but I haven’t really thought about it. Could elaborate on the specific use case for it and why you need queries in the OEM?

  • Matti says:

    Hi Alex,
    thanks alot for this great plugin, works fine so far and is very easy to understand.
    I now found the metrics of the group “Other Metrics” don’t show graphics like all the other metrics, is that a bug? I need especially a history of “open files” and “open tables”.

    Thanks

    Matti

    • I think it’s because they are probably setup as text metrics because Others group is catching anything that hasn’t been classified anywhere else. This is so that we can get metrics in the new releases that don’t make it into any groups without me needing to make a new version of the plugin.

  • Khalid says:

    Hi,
    I have just deploying the plugins, i want to monitor a mysql instance version 5.6.16 the problem is : when i acces the interface home of the plugings i get an error :
    Error during operation: Unexpected Error
    An unexpected error has occurred while processing the page or dialog “MetaDataPageActivityDef[homePg]“. The user interface item “mpDefault0…BarChart230″ has reported the error: faultCode:DataServiceErr faultString:’An error occurred calling the metric data service.’ faultDetail:’MetricDataService:getRealtimeData:Error getting metric data from agent for Mysql_Radiop:mysql: oracle.sysman.emSDK.emd.comm.MetricGetException: em_error=Timeout of authentication at /opt/agent12c/core/12.1.0.2.0/../../plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_oem.pm line 45′

    the status for the targets is unknown

    Thanks you for help

  • Martin says:

    Hello
    i get the following error when i deploy the plugin on an 12.1.0.3.0 agent on SLES 10

    2014-07-02 11:45:51,431 [RemoteJobWorker 5128532] ERROR agentdeploy.AgentPluginDeploy deployPlugin.2030 -
    2014-07-02 11:45:51,450 [RemoteJobWorker 5128532] ERROR agentdeploy.AgentPluginDeploy deployPlugin.2490 – java.security.PrivilegedActionException: oracle.sysman.emSDK.agent.client.exception.PerformOperationException: exit code: 136

    any idea ?
    thanks
    Martin

    • Doesn’t look like a plugin specific issue. Something wrong with the deployment. Are there more error in agent’s log files?

      • Martin says:

        Hello . i think it was a problem with the agent version . the agent 12.0.3.x x86/64 is not certificated for SLES 10. i have installed the 32 bit version and it works :)

  • Bill Wagma says:

    I just downloaded the MySQL plugin, successfully imported it into my OEM 12.1.0.3 installation and deployed it. The deployment reported success but in the log file I see the following warning messages -

    2014-07-14 14:26:40,927 [main] WARN deploymentservice.EMPluginDeploymentUtil – No OMS name property passed. Assuming there is only one entry in emInstanceMapping.properties.
    2014-07-14 14:26:48,140 [main] WARN deploymentservice.EMPluginDeploymentUtil – Error while saving SCN before deployment: Numeric Overflow
    java.sql.SQLException: Numeric Overflow
    .
    .
    .
    2014-07-14 14:26:48,226 [main] WARN pluginca.PluginCABackup – Adding step PRE_DEPLOY_CALLBACK which is not recognized by pluginca backup system.
    2014-07-14 14:26:48,386 [main] WARN pluginca.PluginCABackup – Adding step POST_DEPLOY_CALLBACK which is not recognized by pluginca backup system.
    2014-07-14 14:29:52,116 [main] ERROR sysman.PreMRSLogger – Default temp location /usr/local/oracle/Mware12103/plugins/tmp/Intermediate_xsds is not writable
    .
    .
    .
    2014-07-14 14:30:02,222 [main] WARN selfupdate.EMPluginRegistration – Entity F3E040ADA16C987DACCB8AA5C2C2EE38 (plugin: pythian.mysql.prod:12.1.0.1.2:0) already exists in SU inventory

    Are these expected warnings or is there an issue I should resolve?

    • Bill Wagma says:

      I’m wondering if anyone has had an opportunity to look at my question. Thanks.

      • Bill: missed your question.

        I don’t recall seeing those warnings. I don’t believe they are specific for MySQL plugin and are generic for EM plugins. I could recommend opening an SR with Oracle and ask them. I don’t see how they are applied to MySQL plugin specifically.

  • Vishal says:

    I am getting an error when trying to Manually add the MySQL server target version 5.0.95…

    This is from the OMS logs:

    2014-07-29 17:14:01,705 [[ACTIVE] ExecuteThread: ’6′ for queue: ‘weblogic.kernel.Default (self-tuning)’] ERROR agent.EMPluginAgentDeploymentHelper logp.251 – Err from ValidatePluginAsSysman java.lang.NullPointerException
    2014-07-29 17:14:01,711 [[ACTIVE] ExecuteThread: ’6′ for queue: ‘weblogic.kernel.Default (self-tuning)’] WARN Util.class logp.251 – Exception:
    oracle.sysman.core.common.extensibility.plugin.deploymentservice.agent.EMPluginAgentDeploymentException: java.lang.NullPointerException
    at oracle.sysman.core.common.extensibility.plugin.deploymentservice.agent.EMPluginAgentDeploymentHelper.validatePluginForAgentSideDeploymentAsSysman(EMPluginAgentDeploymentHelper.java:2130)
    at oracle.sysman.core.common.extensibility.plugin.deploymentservice.agent.EMPluginAgentDeploymentHelper.validatePluginForAgentSideDeployment(EMPluginAgentDeploymentHelper.java:620)
    at oracle.sysman.core.discovery.uimodel.Util.doValidatePluginOnAgent(Util.java:124)
    at oracle.sysman.core.discovery.uimodel.Util.validatePluginOnAgent(Util.java:99)
    at oracle.sysman.core.discovery.home.DiscoverHomeBacking.addTargetOnAgentAction(DiscoverHomeBacking.java:174)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
    at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:103)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:97)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:971)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:439)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:219)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:211)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.view.page.editor.webapp.WebCenterComposerFilter.doFilter(WebCenterComposerFilter.java:117)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:79)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:128)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:728)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.eml.app.MBeanServerConnFilter.doFilter(MBeanServerConnFilter.java:43)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:561)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.caching.filter.AdfFacesCachingFilter.doFilter(AdfFacesCachingFilter.java:137)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.sysman.core.app.exception.EMRuntimeExceptionFilter.doFilter(EMRuntimeExceptionFilter.java:81)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Caused by: java.lang.NullPointerException
    at oracle.sysman.core.common.extensibility.plugin.deploymentservice.agent.EMPluginAgentDeploymentHelper.validatePluginForAgentSideDeployment(EMPluginAgentDeploymentHelper.java:950)
    at oracle.sysman.core.common.extensibility.plugin.deploymentservice.agent.EMPluginAgentDeploymentHelper$ValidatePluginAsSysman.doWork(EMPluginAgentDeploymentHelper.java:2160)
    at oracle.sysman.emSDK.sec.authz.EMSecurityContext.doWorkAsUser(EMSecurityContext.java:1512)
    at oracle.sysman.core.common.extensibility.plugin.deploymentservice.agent.EMPluginAgentDeploymentHelper.validatePluginForAgentSideDeploymentAsSysman(EMPluginAgentDeploymentHelper.java:2124)
    … 81 more

    Any help is appreciated. Thanks.

  • Bill: something seems to be inconsistent in the EM repository. I can’t diagnose it based on this trace. I would open and SR with Oracle ad try to figure out what’s going on.

    Do you have any other non-out-of-the-box plugins deployed and used?

  • Andrew Bennett says:

    Cannot seem to deploy plugin anymore. Have it installed on 2 servers last fall. Now tried a 3rd server and it is failing to install plugin on Management Agent.
    Calling the validateRuntimeParameters method
    DeployPluginOnAgentJob: Plugin Deploy on Agent : validated parameters
    The target_guid is 86AA05A6370EE6C3A1A98DB07ABCC57C.propName : AgentState
    propName : OracleHome
    DeployPluginOnAgentJob
    Plugin Deploy on Agent – oraHome /opt/oracle/product/em/core/12.1.0.3.0
    PluginDeployonAgt – emStateDir /opt/oracle/product/em/agent12c
    The exception has occured java.sql.SQLException: Error retrieving archive: Archive not found: Error retrieving local store path
    The exit code is -1

    2014-07-29 16:15:29,877 [RemoteJobWorker 11805199] ERROR plugin.EMPluginUtil logp.251 – Error retrieving AGENT archive for plug-in pythian.mysql.prod:12.1.0.1.2:0
    java.io.IOException: Archive not found: Error retrieving local store path
    at oracle.sysman.core.selfupdate.model.EntityImpl.getArchiveLocal(EntityImpl.java:808)
    at oracle.sysman.core.common.extensibility.plugin.EMPluginUtil.getPluginComponentArchive(EMPluginUtil.java:1449)
    at oracle.sysman.core.common.extensibility.plugin.EMPluginUtil.getPluginComponentArchive(EMPluginUtil.java:1238)
    at oracle.sysman.plugin.agentdeploy.AgentPluginDeploy.deployPlugin(AgentPluginDeploy.java:1935)
    at oracle.sysman.plugin.agentdeploy.DeployPluginOnAgentJob.executeCommand(DeployPluginOnAgentJob.java:362)
    at oracle.sysman.emdrep.jobs.CommandStepExecutor.execute(CommandStepExecutor.java:154) at oracle.sysman.emWebservices.inbound.jobs.worker.ConsoleJobStepExecutor.execute(ConsoleJobStepExecutor.java:321) at oracle.sysman.emWebservices.inbound.jobs.worker.ConsoleJobStepExecutor.executeStep(ConsoleJobStepExecutor.java:187)
    at sun.reflect.GeneratedMethodAccessor23434.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at oracle.j2ee.ws.server.jaxws.ServiceEndpointRuntime.processMessage(ServiceEndpointRuntime.java:370)
    at oracle.j2ee.ws.server.jaxws.ServiceEndpointRuntime.processMessage(ServiceEndpointRuntime.java:202)
    at oracle.j2ee.ws.server.jaxws.JAXWSRuntimeDelegate.processMessage(JAXWSRuntimeDelegate.java:474)
    at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
    at oracle.j2ee.ws.server.WebServiceProcessor$1.run(WebServiceProcessor.java:1120)
    at oracle.j2ee.ws.server.WebServiceProcessor$1.run(WebServiceProcessor.java:1118)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
    at oracle.security.jps.internal.jaas.AccActionExecutor.execute(AccActionExecutor.java:74)
    at oracle.security.jps.internal.jaas.CascadeActionExecutor$SubjectPrivilegedExceptionAction.run(CascadeActionExecutor.java:83)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
    at weblogic.security.Security.runAs(Security.java:61)
    at oracle.security.jps.wls.jaas.WlsActionExecutor.execute(WlsActionExecutor.java:51)
    at oracle.security.jps.internal.jaas.CascadeActionExecutor.execute(CascadeActionExecutor.java:56)
    at oracle.j2ee.ws.server.provider.GenericProviderPlatform.runAs(GenericProviderPlatform.java:398)
    at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1138)
    at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
    at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:233)
    at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:193) at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:485) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
    at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:346)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
    at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
    at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:554)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)

  • Andrew: I suspect that there was upgrade or patch or something done on the EM server and the plugin archive is not there anymore for whatever reason. I haven’t encountered this situation in the past to advise on the solution without hands on troubleshooting. Perhaps, opening an Oracle SR?

  • mladak says:

    Hey Alex,
    I’ve just deployed your plugin on Grid Control without difficulties.
    I created ueser as you requested, grnated privileges but i still see errors on screen and in oms.log.

    mysql> GRANT PROCESS, REPLICATION CLIENT ON *.* TO ‘oracle’@’%’;
    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    Caused by: oracle.sysman.gcagent.cxl.ProxyException: em_error=MySQL error #42000Access denied; you need the PROCESS privilege for this operation at /u03/app/oracle/agent/core/12.1.0.2.0/../../plugins/pythian.mysql.prod.agent.plugin_12.1.0.1.2/scripts/emx/mysql/mysql_oem.pm line 60.

    at oracle.sysman.gcagent.cxl.TMResponsePayload.toMessage(TMResponsePayload.java:116)
    at oracle.sysman.gcagent.cxl.TMResponseEnvelope.unmarshal(TMResponseEnvelope.java:542)
    at oracle.sysman.gcagent.comm.streams.TMEnvelopePacket.unmarshal(TMEnvelopePacket.java:122)
    at oracle.sysman.gcagent.comm.streams.PacketSink.getNextPacket(PacketSink.java:149)
    at oracle.sysman.gcagent.comm.oms.http.HTTPClientTerminus.receiveReply(HTTPClientTerminus.java:968)
    at oracle.sysman.gcagent.comm.oms.http.HTTPClientTerminus.getReplyFromMessage(HTTPClientTerminus.java:628)
    at oracle.sysman.gcagent.oms.TMRemoteClient.getMetricCollectionResultBatch(TMRemoteClient.java:5649)
    at oracle.sysman.gcagent.oms.TMRemoteClient.getMetricCollectionResults(TMRemoteClient.java:2004)
    at oracle.sysman.emSDK.emd.comm.EMDClient.getMetrics(EMDClient.java:2057)
    at oracle.sysman.emSDK.emd.rt.EmdTargetMetric.getData(EmdTargetMetric.java:195)

    Thanks for your help.
    Marcin

  • Andrew Bennett says:

    Me again :-) Trying to use latest version of plugin with 5.7 and get when trying to setup Monitoring Configuration:

    Error during operation: Unexpected Error
    An unexpected error has occurred while processing the page or dialog “MetaDataPageActivityDef[homePg]“. The user interface item “mpDefault0…BarChart228″ has reported the error: faultCode:DataServiceErr faultString:’An error occurred calling the metric data service.’ faultDetail:’MetricDataService:getRealtimeData:Error getting metric data from agent for MySQL_ut07245:mysql: oracle.sysman.emSDK.emd.comm.NoSuchTargetException: the mysql target “MySQL_ut07245″ does not exist’

  • Andrew Bennett says:

    And from the gcagent_errors.log

    2014-07-31 14:11:08,196 [30:HTTP Listener-30 - /emd/main/ (DispatchRequests OMS.pbs@9237@ut03237=>[140683386810001])] ERROR – Failed to save target: [mysql.MySQL_ut07245]oracle.sysman.gcagent.metadata.MetadataExecutionException: No such metadata for target type [mysql] for target [mysql.MySQL_ut07245]
    at oracle.sysman.gcagent.metadata.TargetManager.loadTargetStaticInfo(TargetManager.java:4546) at oracle.sysman.gcagent.metadata.TargetManager.createSaveTargetInstance(TargetManager.java:5831) at oracle.sysman.gcagent.metadata.TargetManager.saveTargetsStatic(TargetManager.java:5673) at oracle.sysman.gcagent.metadata.TargetManager.addTargetsImpl(TargetManager.java:2577) at oracle.sysman.gcagent.metadata.TargetManager.addTargets(TargetManager.java:1340) at oracle.sysman.gcagent.dispatch.cxl.AddTargetsAction.satisfyRequest(AddTargetsAction.java:112) at oracle.sysman.gcagent.dispatch.ProcessRequestAction._call(ProcessRequestAction.java:134) at oracle.sysman.gcagent.dispatch.ProcessRequestAction.call(ProcessRequestAction.java:95) at oracle.sysman.gcagent.dispatch.InlineDispatchCoordinator.dispatchRequest(InlineDispatchCoordinator.java:229) at oracle.sysman.gcagent.dispatch.DispatchRequestsAction.call(DispatchRequestsAction.java:110)
    at oracle.sysman.gcagent.dispatch.DispatchRequestsAction.call(DispatchRequestsAction.java:50)
    at oracle.sysman.gcagent.task.DiagWrappedAction.call(DiagWrappedAction.java:52)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at oracle.sysman.gcagent.task.SingleActionTask.run(SingleActionTask.java:76)
    at oracle.sysman.gcagent.dispatch.DispatchRequestsTask.run(DispatchRequestsTask.java:64)
    at oracle.sysman.gcagent.task.AbstractTemplateTask.call(AbstractTemplateTask.java:198)
    at oracle.sysman.gcagent.task.AbstractTemplateTask.call(AbstractTemplateTask.java:49)
    at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.accountedCall(TaskFutureImpl.java:574)
    at oracle.sysman.gcagent.task.TaskFutureImpl$WrappedTask.call(TaskFutureImpl.java:613)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at oracle.sysman.gcagent.task.TaskFutureImpl.run1(TaskFutureImpl.java:357)
    at oracle.sysman.gcagent.task.TaskFutureImpl.run(TaskFutureImpl.java:322)
    at oracle.sysman.gcagent.task.executor.CurrentThreadExecutor.submit(CurrentThreadExecutor.java:76)
    at oracle.sysman.gcagent.task.executor.CurrentThreadExecutor.submit(CurrentThreadExecutor.java:64)
    at oracle.sysman.gcagent.dispatch.DispatchRequestsExecutor.submit(DispatchRequestsExecutor.java:82)
    at oracle.sysman.gcagent.dispatch.RequestDispatcher.executeRequests(RequestDispatcher.java:2297)
    at oracle.sysman.gcagent.dispatch.RequestDispatcher.dispatchRequests(RequestDispatcher.java:767)
    at oracle.sysman.gcagent.comm.agent.http.TMClientProtocolServer.onServiceProtocol(TMClientProtocolServer.java:310)
    at oracle.sysman.gcagent.comm.agent.http.HTTPRequestHandler.handle(HTTPRequestHandler.java:189)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
    at oracle.sysman.gcagent.comm.agent.http.HTTPListener$EMDUrlHandler.handle(HTTPListener.java:742)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:933)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
    at org.eclipse.jetty.server.Server.handle(Server.java:330)
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559)
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1007)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:839)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203)
    at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:462)
    at oracle.sysman.gcagent.comm.agent.http.HTTPListenerThreadPool$JobSleeve.run(HTTPListenerThreadPool.java:256)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
    at oracle.sysman.gcagent.util.system.GCAThread$RunnableWrapper.run(GCAThread.java:184)
    at java.lang.Thread.run(Thread.java:662)

    • Andrew: While I’ve never tested the plugin with 5.7 and it’s entirely possible that there were some changes in the wire protocol that could break it, the error doesn’t look like anything to do with 5.7 and MySQL connectivity issue. Something seems inconsistent in EM12c. Do you think you can try to clean up by removing the target and re-adding, perhaps, with different target name?

      Not really sure how to help you troubleshooting it remotely.
      What’s you EM12c version?

  • Bill Wagma says:

    Alex, Is it possible to get to the OEM tuning pack from the MySQL Plugin? I have been poking around a bit but am not able to find a way to do that. I suspect it may not be possible. I am primarily interested in being able to generate explain plans for SQL queries.

    Thanks.
    Bill Wagman

  • Bill Wagman says:

    Ok, thanks.

  • Ajay Rao says:

    Hi
    I imported the update but it shows below output and plug in not visible in OEM console:

    [oracle@dbamon20] $ emcli -import_update file=/u01/oracle/software/mysql/12.1.0.1.2_pythian.mysql.prod_2000_0.man -omslocal
    Oracle Enterprise Manager 12c EMCLI with Scripting option Version 12.1.0.3.0.
    Copyright (c) 1996, 2013 Oracle Corporation and/or its affiliates. All rights reserved.

    Type help() for help and exit() to get out.

    emcli>exit

    Tried renaming the same to .opar, didn’t work.

    [oracle@dbamon20] $ uname -a
    SunOS dbamon20 5.10 Generic_150400-02 sun4v sparc sun4v

    • You are using wrong command syntax — there is no “-” in front of import_update.
      emcli commands have no dash in front while command options do.
      That’s why you are getting emcli command line prompt — it doesn’t see any command passed in the arguments.

  • Yogesh Kumar says:

    Hi,
    I couldn’t find license for free download? Is there any license I need to review to use free version? I just want to ensure I understand license terms if any exists

    Thanks,
    Yogesh.

  • Ken Marrs says:

    I had the plugin 12.1.0.1.2 running on Em 12.1.0.3 and monitoring one instance to test with. I upgraded Em to 12.1.0.4 and then when selecting that instance received this error in the browser:

    Error during operation: Load Target Metadata for mysqlnnnn
    faultCode:Loading target information faultString:’Unable to load metric definitions for target mysqlnnnn. An error occurred: The user interface code is attempting to use an invalid version of the EM user interface library (mpcui.swf). This may occur as a result of an older version cached in the browser or as a result of the application being built incorrectly. Please clear your browser cache and attempt to load this page again.
    If this error persists contact the plug-in provider. The correct version of the library is 12.1.0.4.0′ faultDetail:’null’

    I did attempt to clear cache and reload and same errors appeared.

    Do I need to un-deploy and re-deploy the plugin? Is this compatible with 12.1.0.4 EM?

    Thanks,

    Ken

    • Actually, this library is from Oracle (because I’m using metadata-based UI and not shipping any Flex packages) and Oracle generates the code based on this metadata-based UI.
      Normally, plugins should just work after OEM upgrade but I didn’t try to test it during 12.1.0.3->12.1.0.4 upgrade.
      Can you try to re-deploy it (I think you will need to delete targets and undeploy from OMS)? You would loose metric and configuration history, unfortunately.

      • Ken Marrs says:

        I will give it a try. Luckily this is just a test system and I haven’t deployed more than one to the production system of EM yet. So I won’t lose much when I upgrade that one to 12.1.0.4

        • Ken Marrs says:

          That didn’t work. I undeployed it from Agent and OMS. Then I added the target again and that was successful. But clicking on it to display the target page agin receives the same error.

  • Arun Bavera says:

    Hi

    Will this MySQL Plugin works with Percona MySQL?
    http://www.percona.com/software/percona-server/feature-comparison

    Thanks & Regards
    Arun

  • I haven’t tested it but I think it should. Some metrics might be missing and any Percona specific metrics and statistics will probably be not available. Let me know if you try it.

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>