小编Dzi*_*nek的帖子

在将DBCP替换为Tomcat JDBC池时增加负载并降低性能

在DBCP中的连接泄漏和死锁问题之后,我们决定用Tomcat JDBC池替换它.当然,迁移非常简单.

但是在我注意到的生产环境中部署之后,运行两个Tomcats的服务器上的负载从4-4.5增加到5.5.除了改变游泳池之外,我们没有做更多的事情.此外,用JMeter测量的性能下降约5%.

我花了一些时间来调整池参数,但没有可见效果.我贴我目前的配置(来自<GlobalNamingResources>server.xml)以下:

<Resource name="jdbc/xxxxxx"
          auth="Container"
          type="javax.sql.DataSource"
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          initialSize="10"
          maxActive="100"
          minIdle="10"
          maxIdle="50"
          maxWait="10000" 
          testOnBorrow="true"
          testOnReturn="false"
          testOnConnect="false"
          testWhileIdle="false"
          validationQuery="SELECT 1 from dual"
          validationInterval="30000"
          suspectTimeout="60"
          timeBetweenEvictionRunsMillis="30000"
          removeAbandonedTimeout="60"
          removeAbandoned="true"
          logAbandoned="true"
          abandonWhenPercentageFull="50"
          minEvictableIdleTimeMillis="60000"
          jmxEnabled="true"
          username="xxxxx"
          password="xxxxx"
          driverClassName="oracle.jdbc.OracleDriver"
          url="jdbc:oracle:oci:xxxxx"/>
Run Code Online (Sandbox Code Playgroud)

FairQueue和PoolSweeperEnabled都是真的

在Spring applicationContext-jdbc.xml中我只有:

  <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="resourceRef">
      <value>true</value>
    </property>
    <property name="jndiName">
      <value>java:comp/env/jdbc/PortalDB</value>
    </property>
  </bean>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我想,JDBC_pool应该比开箱即用的DBCP快.

performance tomcat load apache-commons-dbcp jdbc-pool

16
推荐指数
1
解决办法
2918
查看次数

Sonar不检查XML中的Android Lint错误

我在Sonarqube中检查了一个Android项目.它似乎是用Java,Android和XML插件正确设置的,我也解析了Java和XML:

在此输入图像描述

Sonar插件的My Gradle片段如下所示:

sonarqube {
  properties {
    property 'sonar.projectVersion', "$android.defaultConfig.versionName"

    property 'sonar.java.source', JavaVersion.VERSION_1_8
    property 'sonar.java.target', JavaVersion.VERSION_1_8
    property 'sonar.sourceEncoding', 'UTF-8'

    property "sonar.sources", "src/main"
    property "sonar.binaries", "build/intermediates/classes/debug"
    property "sonar.java.binaries", "build/intermediates/classes/debug"
    property "sonar.tests", "src/test/java, src/androidTest/java"
    property "sonar.java.test.binaries", "build/intermediates/classes/debug"
    property "sonar.import_unknown_files", true
}
Run Code Online (Sandbox Code Playgroud)

}

但无论如何,即使启用了'sonar.import_unknown_files',我仍然会对xml文件的"无法找到文件"发出警告:

10:36:04.768 [Task worker for ':' Thread 6] DEBUG o.s.p.a.lint.AndroidLintProcessor - Processing Issue: AllowBackup
10:36:04.769 [Task worker for ':' Thread 6] WARN  o.s.p.a.lint.AndroidLintProcessor - Unable to find file /home/me/project/app/src/main/AndroidManifest.xml to report issue
10:36:04.770 [Task worker for ':' Thread 6] DEBUG …
Run Code Online (Sandbox Code Playgroud)

android android-xml android-lint sonarqube

6
推荐指数
0
解决办法
308
查看次数

Android SupportActionBar不刷新标题

刷新ActionBar标题时遇到问题.应用程序相当简单,目前只有一个活动:`

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/app_bar_height"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay"/>

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_count_scrolling"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fabReset"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_alert"
        app:layout_anchor="@id/app_bar"
        app:layout_anchorGravity="bottom|end"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

布局content_count_scrollingNestedScrollView包含RecyclerView内部.

我的情况是,当我EditText在任何RecyclerView行中输入一个数字时,它会在数据模型中设置一个值,并重新计算总值(所有行的总和).此总值应设置为ActionBar.title.为此,我也使用RxBus.MainActivity如下:

public class MainActivity extends AppCompatActivity {
    // ....
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_scrolling);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        toolbar.setTitle("");

        mRxBus = getRxBusSingleton();        
        // ....
    }
}

public void refreshActionBarTitle() {
    String total …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar material-design

3
推荐指数
1
解决办法
1576
查看次数