Community

Subscribe
Highlighted
Accepted Solution

Issue with invoking NfsStatsGetClientStatsRequest (NMSDK Java Bindings)

Hi,

I am trying to explore the NMSDK Java API and have created a test Java client which executes various Data_ONTAP commands against a NetApp appliance.

When I invoke the NfsStatsGetClientStatsRequest command via the ApiRunner. I am getting the error

"Error : 21012 Malformed XML: Expected element tag rpc-stats-info, actual element tag was tcp-info."

Looking at the TCP capture of the XML, this is what is coming back from the Appliance...

<?xml version='1.0' encoding='UTF-8' ?>

<!DOCTYPE netapp SYSTEM '/na_admin/netapp_filer.dtd'>

<netapp version='1.1' xmlns='http://www.netapp.com/filer/admin'>

    <results status="passed">

        <client-info>10.36.1.174</client-info>

        <rpc-stats>

            <tcp-info>

                <calls-total>185</calls-total>

                <badcalls-total>0</badcalls-total>

                <nullrecv-total>0</nullrecv-total>

                <badlen-total>0</badlen-total>

                <xdrcall-total>0</xdrcall-total>

            </tcp-info>

            <udp-info>

                <calls-total>1</calls-total>

                <badcalls-total>1</badcalls-total>

                <nullrecv-total>0</nullrecv-total>

                <badlen-total>0</badlen-total>

                <xdrcall-total>1</xdrcall-total>

            </udp-info>

        </rpc-stats>

        <nfs-stats>

            <calls-total>185</calls-total>

            <badcalls-total>0</badcalls-total>

            <nfsv2-client-stats>

                <null-ops>0</null-ops>

                <getattr-ops>0</getattr-ops>

                <setattr-ops>0</setattr-ops>

                <root-ops>0</root-ops>

                <lookup-ops>0</lookup-ops>

                <readlink-ops>0</readlink-ops>

                <read-ops>0</read-ops>

                <wrcache-ops>0</wrcache-ops>

                <write-ops>0</write-ops>

                <create-ops>0</create-ops>

                <remove-ops>0</remove-ops>

                <rename-ops>0</rename-ops>

                <link-ops>0</link-ops>

                <symlink-ops>0</symlink-ops>

                <mkdir-ops>0</mkdir-ops>

                <rmdir-ops>0</rmdir-ops>

                <readdir-ops>0</readdir-ops>

                <statfs-ops>0</statfs-ops>

            </nfsv2-client-stats>

            <nfsv3-client-stats>

                <null-ops>2</null-ops>

                <getattr-ops>64</getattr-ops>

                <setattr-ops>0</setattr-ops>

                <lookup-ops>24</lookup-ops>

                <access-ops>68</access-ops>

                <readlink-ops>0</readlink-ops>

                <read-ops>0</read-ops>

                <write-ops>0</write-ops>

                <create-ops>0</create-ops>

                <mkdir-ops>0</mkdir-ops>

                <symlink-ops>0</symlink-ops>

                <mknod-ops>0</mknod-ops>

                <remove-ops>0</remove-ops>

                <rmdir-ops>0</rmdir-ops>

                <rename-ops>0</rename-ops>

                <link-ops>0</link-ops>

                <readdir-ops>1</readdir-ops>

                <readdirplus-ops>0</readdirplus-ops>

                <fsstat-ops>23</fsstat-ops>

                <fsinfo-ops>1</fsinfo-ops>

                <pathconf-ops>2</pathconf-ops>

                <commit-ops>0</commit-ops>

            </nfsv3-client-stats>

        </nfs-stats>

        <tcp-flowcontrol-stats>

            <receive-total>0</receive-total>

            <transmit-total>0</transmit-total>

            <receive-out-total>0</receive-out-total>

            <transmit-out-total>0</transmit-out-total>

        </tcp-flowcontrol-stats>

    </results>

</netapp>

The test environment is set up as follows...

NetApp applianceV3220 (2x HA Pair)
The response of SystemGetVersionRequestNetApp Release 8.1.2 7-Mode: Tue Oct 30 19:56:51 PDT 2012
NMSDK Java API versionsontap-api-8.1.1jar , nmsdk-runtime-5.1.jar
JavaJava(TM) SE Runtime Environment (build 1.7.0_09-b05)

Is there a version mismatch between the test Java client and the filer ?

Any ideas where this could be going wrong ?

Regards,

--

Gagan

Message was edited by: Gagan Grewal I tried after downloading the latest available release of the API Java bindings and still get the same result.

Re: Issue with invoking NfsStatsGetClientStatsRequest (NMSDK Java Bindings)

Hi,

Bumping this thread in the hope of finding a response.

--

Gagan

Re: Issue with invoking NfsStatsGetClientStatsRequest (NMSDK Java Bindings)

Hi Gagan,

I have looked into your issue. It looks like a ONTAP bug. I am working towards letting the appropriate team know the error and fixing it.

Best Regards

Aashray

Re: Issue with invoking NfsStatsGetClientStatsRequest (NMSDK Java Bindings)

Hi Aashray,

Thanks for the follow up on this. Much appreciated.

If possible, could you point me to the correct place to request new features in the API ?

I have looked in the API and could not find a way to query connected NFS clients. Because of that I have to rely on "external plumbing" to gather info about connected NFS clients and then pass those clients' IP address into NfsStatsGetClientStats call.

It would be great if the API itself could tell me which clients are connected and then I can programatically filter in the required clients for which NFS stats need gathering and make the NfsStatsGetClientStats call.

Regards,

--

Gagan

Re: Issue with invoking NfsStatsGetClientStatsRequest (NMSDK Java Bindings)

This is a good place itself to suggest a feature. I will mention this request to some experts related to NFS.

Re: Issue with invoking NfsStatsGetClientStatsRequest (NMSDK Java Bindings)

Hi Aashray,

Do you have any update on this please ?

Regards,

--

Gagan

Re: Issue with invoking NfsStatsGetClientStatsRequest (NMSDK Java Bindings)

Hi,

Bumping up this thread again with another update/question.

I noticed that it is possible to get a per-client NFS stats in ONTAP Cluster Mode as well. However, that is only ever possible via the command line.

I would like to request an API feature which allows

- To get per-client NFS metrics in cluster mode as well

- To find out which clients are connected so that the information can be used directly from within the API

Regards,

--

Gagan Grewal