<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:53:07 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[JAVA-805] Make connection pool and connection state observable</title>
                <link>https://jira.mongodb.org/browse/JAVA-805</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;It&apos;d be potentially useful for the status of a replica set connection to be observable, so an observer can subscribe and be made aware of any events (eg. change in primary, no primary or no majority, etc.).&lt;/p&gt;

&lt;p&gt;Similarly, it could be useful for the status of the connection pool and of each connection to be observable.  &lt;/p&gt;

&lt;p&gt;Specifically, the driver should surface the following events to listeners:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;connection pool opened&lt;/li&gt;
	&lt;li&gt;connection pool closed&lt;/li&gt;
	&lt;li&gt;connection added to pool&lt;/li&gt;
	&lt;li&gt;connection removed from pool&lt;/li&gt;
	&lt;li&gt;connection checked out of pool&lt;/li&gt;
	&lt;li&gt;connection checked in to pool&lt;/li&gt;
	&lt;li&gt;connection pool wait queue entered&lt;/li&gt;
	&lt;li&gt;connection pool wait queue exited&lt;/li&gt;
	&lt;li&gt;connection opened&lt;/li&gt;
	&lt;li&gt;connection closed&lt;/li&gt;
&lt;/ol&gt;

</description>
                <environment></environment>
        <key id="71639">JAVA-805</key>
            <summary>Make connection pool and connection state observable</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="ross@mongodb.com">Ross Lawley</assignee>
                                    <reporter username="jeff.yemin@mongodb.com">Jeffrey Yemin</reporter>
                        <labels>
                    </labels>
                <created>Fri, 12 Apr 2013 15:51:42 +0000</created>
                <updated>Mon, 15 Jan 2018 06:52:18 +0000</updated>
                            <resolved>Tue, 11 Jul 2017 08:09:55 +0000</resolved>
                                                    <fixVersion>3.5.0</fixVersion>
                                    <component>API</component>
                    <component>Monitoring</component>
                                        <votes>7</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="1617819" author="xgen-internal-githook" created="Mon, 10 Jul 2017 16:17:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;rozza&apos;, u&apos;name&apos;: u&apos;Ross Lawley&apos;, u&apos;email&apos;: u&apos;ross.lawley@gmail.com&apos;}
&lt;p&gt;Message: Made ConnectionListener and ConnectionPoolListener an official part of the API&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-805&quot; title=&quot;Make connection pool and connection state observable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-805&quot;&gt;&lt;del&gt;JAVA-805&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/6be00a8897317c3a67ec3f7700d4d1f2c732bbe9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/6be00a8897317c3a67ec3f7700d4d1f2c732bbe9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1597842" author="ross@10gen.com" created="Thu, 15 Jun 2017 12:46:58 +0000"  >&lt;p&gt;PR: &lt;a href=&quot;https://github.com/rozza/mongo-java-driver/pull/204&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/rozza/mongo-java-driver/pull/204&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="424851" author="jeff.yemin" created="Fri, 13 Sep 2013 22:03:04 +0000"  >&lt;p&gt;This is complete in core, but still need to expose a way to add listeners via MongoClientOptions&lt;/p&gt;</comment>
                            <comment id="424850" author="auto" created="Fri, 13 Sep 2013 22:02:08 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-805&quot; title=&quot;Make connection pool and connection state observable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-805&quot;&gt;&lt;del&gt;JAVA-805&lt;/del&gt;&lt;/a&gt;: Ensure than the pool sends no more events after it&apos;s been closed.&lt;br/&gt;
Branch: 3.0.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/a40eb209e8eafad3a2265e6896fbefa3e827a5d5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/a40eb209e8eafad3a2265e6896fbefa3e827a5d5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="424849" author="auto" created="Fri, 13 Sep 2013 22:02:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-805&quot; title=&quot;Make connection pool and connection state observable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-805&quot;&gt;&lt;del&gt;JAVA-805&lt;/del&gt;&lt;/a&gt;: Variable name changes, inlined variables, and formatting&lt;br/&gt;
Branch: 3.0.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/fcd589e764a864fd83b20edd16b3613817982c13&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/fcd589e764a864fd83b20edd16b3613817982c13&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="424848" author="auto" created="Fri, 13 Sep 2013 22:02:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-805&quot; title=&quot;Make connection pool and connection state observable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-805&quot;&gt;&lt;del&gt;JAVA-805&lt;/del&gt;&lt;/a&gt;: Removed Cluster change listener support, as it&apos;s superseded by ClusterListener.&lt;br/&gt;
Branch: 3.0.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/3fa2da37870ccc0b9331f661903c947de4f98845&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/3fa2da37870ccc0b9331f661903c947de4f98845&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="424847" author="auto" created="Fri, 13 Sep 2013 22:02:03 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-805&quot; title=&quot;Make connection pool and connection state observable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-805&quot;&gt;&lt;del&gt;JAVA-805&lt;/del&gt;&lt;/a&gt;: Created JMX connection pool listener and removed explicit JMX support from PooledConnectionProvider&lt;br/&gt;
Branch: 3.0.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/33bee8144186808b89dccc1cf750db14efef093c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/33bee8144186808b89dccc1cf750db14efef093c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="424846" author="auto" created="Fri, 13 Sep 2013 22:02:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-805&quot; title=&quot;Make connection pool and connection state observable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-805&quot;&gt;&lt;del&gt;JAVA-805&lt;/del&gt;&lt;/a&gt;: Implemented connection events in the internal connection,  In order to send the event properly, needed a few extras like the cluster id and the request id of the sent message.&lt;br/&gt;
Branch: 3.0.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/7c84b188625da2cc36f826dacc81d997b8a3739c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/7c84b188625da2cc36f826dacc81d997b8a3739c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="379449" author="jeff.yemin" created="Fri, 12 Jul 2013 00:45:45 +0000"  >&lt;p&gt;The underpinnings are here, but this still needs to be exposed via MongoClient&lt;/p&gt;</comment>
                            <comment id="368464" author="auto" created="Wed, 26 Jun 2013 20:31:39 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-805&quot; title=&quot;Make connection pool and connection state observable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-805&quot;&gt;&lt;del&gt;JAVA-805&lt;/del&gt;&lt;/a&gt;: Make cluster state observable via a change listener.  Care had to be taken to fire the change events outside of a lock, in case a change listener does not complete quickly.&lt;br/&gt;
Branch: 3.0.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/de13453dbafa0b8bde186d8fe98330f3b61366e0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/de13453dbafa0b8bde186d8fe98330f3b61366e0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="312090" author="jeff.yemin" created="Fri, 12 Apr 2013 16:51:42 +0000"  >&lt;p&gt;Stephen is thinking more of a notification system rather than polling ReplicaSetStatus.getMastert().  It&apos;s a reasonable request.&lt;/p&gt;</comment>
                            <comment id="312087" author="scotthernandez" created="Fri, 12 Apr 2013 16:49:04 +0000"  >&lt;p&gt;You can get access to the replica state already. See Mongo.getReplicaSetStatus()&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="68559">JAVA-788</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="70191">JAVA-799</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="110620">JAVA-1110</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="359875">JAVA-2459</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="92792">JAVA-991</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="172435">JAVA-1583</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                    <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[500A000000UaUtFIAV, 500A000000X1veGIAR]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hraqtb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8517</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1750">JVM Sprint 40</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>